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
Il existe plusieurs contexte d'usage mais pour faire simple, c'est un outil intéressant pour “passer la main” à un autre service.
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 "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>