Proxy apache
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Reverse proxy avec Apache |
| Modules requis | mod_proxy, mod_proxy_http
|
| Directives clés | ProxyPass, ProxyPassReverse
|
| Voir aussi | Modules apache · Vhosts · Php-fpm |
Apache peut faire office de reverse proxy : recevoir les requêtes HTTP sur un vhost
public et les retransmettre vers un service backend écoutant sur un autre port (application
applicative, service interne non exposé directement, etc.), via le module mod_proxy
et ses extensions (mod_proxy_http pour HTTP, mod_proxy_ajp pour AJP
vers Tomcat...).
Activer les modules
a2enmod proxy
a2enmod proxy_http
Exemple : vhost en reverse proxy
# /etc/apache2/sites-available/dev.conf
<VirtualHost *:80>
ServerName dev.example.local
ProxyPass / http://127.0.0.1:8181/
ProxyPassReverse / http://127.0.0.1:8181/
ProxyPreserveHost On
</VirtualHost>
a2ensite dev.conf
systemctl restart apache2
ProxyPass— transmet les requêtes reçues sur/vers le backend.ProxyPassReverse— réécrit les en-têtes de redirection renvoyés par le backend
(Location,Content-Location...) pour qu'ils pointent vers le vhost public plutôt que vers l'adresse interne du backend.
ProxyPreserveHost On— transmet l'en-têteHostoriginal du client
au backend, plutôt que celui de l'URL de destination — indispensable si le backend fait du routage par nom de domaine.
Voir aussi
- Modules apache — gestion des modules
- Vhosts — configuration générale des hôtes virtuels
- Php-fpm — cas d'usage fréquent en backend derrière un proxy