Serveur mandataire inverse avec Apache

Note rapide pour la mise en place d’un serveur mandataire inverse – reverse proxy – avec Apache. Le but est d’avoir un serveur web frontal – le serveur mandataire – qui reçoit les requêtes et va en rediriger certaines vers un ou plusieurs autres serveurs web, par soucis de sécurité notament. Dans mon cas, j’ai une application web PHP/DB2 utilisée par certaines personnes uniquement sur le réseau local, et mon chef me demande de l’installer sur une de nos machines en DMZ pour les agents extérieurs. Il me semblait plus judicieux de s’affranchir d’ajouter une autre instance de cette application qui devrait être maintenue, sauvegardée, etc.

Apache sait faire cela et très simplement. Il suffit pour cela de vérifier que les modules proxy et proxy_http sont activés dans httpd.conf sur la machine qui fera office de serveur mandataire. On ajoute ou décommente ces lignes :

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Ensuite, on ajoute les directives du proxy dans httpd.conf :

ProxyPass /appweb http://autremachine/appweb
ProxyPassReverse /appweb http://autremachine/appweb

Ou alors dans un virtualhost :

<VirtualHost *:80>
	ServerName  serveur-mandataire
	ProxyPass /appweb http://autremachine/appweb
	ProxyPassReverse /appweb http://autremachine/appweb
</VirtualHost>

Après redémarrage du serveur, tout ce qui arrive sur http://serveur-mandataire/appweb est redirigé – en transparence – vers http://autremachine/appweb.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *