Proxy WEB

Reverse proxy apache

Un reverse proxy permet de mettre en place un cache web sur un site ou une partie de site. Lorsque vous ne pouvez pas optimiser plus un serveur, ce type de proxy est très utile.

Nous pouvons mettre un reverse proxy en place avec Apache. Pour faire l'expérience, téléchargeons les sources sur le site d'apache, et compilons :

~/config/$ wget http://apache.multidist.com/httpd/httpd-2.2.14.tar.bz2
~/config/$ tar xzf httpd-2.2.14.tar.bz2
~/config/$ cd httpd-2.2.14
~/config/httpd-2.2.14/$ ./configure --enable-proxy --enable-proxy-html --enable-cache --enable-mem-cache
~/config/httpd-2.2.14/$ make
~/config/httpd-2.2.14/$ sudo make install

Nous avons donc inclus les modules proxy et proxy_html ainsi que cache et mem-cache. Je n'ai pas indiqué tout les --disable-* car la présence des autres modules n'est pas génante (même s'il est toujours bien d'enlever le maximum de modules).

Apache s'installe par défaut dant /usr/local/apache2/, il nous reste donc à éditer le fichier de config /usr/local/apache2/conf/httpd.conf et remplacer tout le contenu par ce qui suit :

ServerRoot "/usr/local/apache2"
Listen 8080
User daemon
Group daemon
ServerAdmin moi@monsite.com
ServerName nomduserveurproxy.com
DocumentRoot "/usr/local/apache2/htdocs"

ProxyRequests off
ProxyPass / http://monserveur.com:80/
ProxyPassReverse / http://monserveur.com:80/
ProxyPreserveHost On

CacheEnable mem /
MCacheSize 256000
MCacheMaxObjectCount 2048
MCacheMinObjectSize 1
MCacheMaxObjectSize 4096
MCacheRemovalAlgorithm LRU

Ensuite on relance apache avec "/usr/local/apache2/bin/apachectl start" et le reverse proxy fonctionne.

Vous aurez peut-être remarqué que j'utilise "Listen 8080", ce qui permet de ne pas repasser en root (port > 1024) pour relancer le serveur. Pour vérifier que cela fonctionne, on tape l'URL : http://nomduserveurproxy.com:8080, et on doit se retrouver comme sur http://monserveur.com:80

Liens externes

Formulaire de contact

Formulaire de contact emailsec