meta données pour cette page
Mettre en place un proxy (Apache)
Foward-proxy
Il est souvent utilisé pour rendre anonyme une navigation sur Internet car ce n'est pas l'utilisateur qui sera sur le site mais le serveur et renverra la ressource récupéré à son client.
Pour cela, on doit modifier le fichier suivant en ajoutant ces directives :
nano /etc/apache2/mods-available/proxy.conf
<IfModule mod_proxy.c> ProxyRequests On # Il est possible de bloquer des TLD : ProxyBlock *.google.fr ProxyBlock *.facebook.com <Proxy *> Require local Require ip 192.168.42.0/24 </Proxy> ProxyVia Full </IfModule>
On active ensuite les modules pour que cette configuration soit pris en compte et que les communications HTTPS puisse également fonctionner :
a2enmod ssl a2enmod proxy a2enmod proxy_http a2enmod proxy_html a2enmod proxy_balancer a2enmod proxy_ajp a2enmod proxy_connect
Puis pour appliquer le tout on relance le service :
service apache2 restart
Reverse Proxy
Il existe plusieurs contexte d'usage mais pour faire simple, c'est un outil intéressant pour “passer la main” à un autre service.
Proxy vers un serveur d'autres serveur web
Dans le cas de vouloir répartir la charge sur plusieurs serveurs en fonction des ressources demandées lors de la consultation d'une page. On a d'abord besoin de ces modules :
a2enmod proxy a2enmod proxy_http
Et de ces directive dans le contexte suivant :
<VirtualHost *:80> ProxyRequests off ProxyPass / http://10.0.0.1/ ProxyPass /images/ http://10.0.0.2/ </VirtualHost>
Il est possible en plus de faire de la répartition de charge sur une ferme de serveurs. Pour cela on a besoin de ce module :
a2enmod proxy_balancer
<VirtualHost *:80> ProxyRequests off <Proxy balancer://Images> BalancerMember http://10.0.0.10:80 BalancerMember http://10.0.0.11:80 </Proxy> ProxyPass /images/ balancer://Images/ </VirtualHost>
Une gestion à distance est disponible mais attention à la sécurité!
<VirtualHost *:80> <Location /balancer-manager> SetHandler balancer-manager Require ip 10.0.0.1 </Location> </VirtualHost>
Et on redémarre le service :
service apache2 restart
Proxy vers un pool PHP
<Proxy "fcgi://127.0.0.1:9000"> ProxySet timeout=300 </Proxy> <FilesMatch \.php$> SetHandler application/x-httpd-php SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>