VirtualHost avec X-Forwarded-Host
Bonjour,
Je vous explique la situation :
J'ai un serveur apache derrière un NAT, et parfois je connecte mon laptop dans le réseau local.
Avec un no-ip je redirige bien les requêtes à destination de celelaptop.exemple.com vers mon réseau NATé.
Comme le serveur est sur la DMZ, y'a pas de problème, il reçoit toutes les connexions.
Avec le mod_proxy sur le serveur j'ai réussi à rediriger toutes les requêtes ayant pour host celelaptop.exemple.com vers mon laptop.
La configuration du vhost du serveur ressemble à ça :
Code:
1 2 3 4 5 6 7 8
| <VirtualHost *>
ServerName celelaptop.exemple.com
ServerAlias *.celelaptop.exemple.com
ProxyRequests Off
ProxyPass / http://192.168.1.120/
ProxyPassReverse / http://192.168.1.120/
</VirtualHost> |
Comem vous pouvez le voir, il y a un ServerAlias parce que je met des sous-sous-domaine pour chaque projet.
Le problème c'est qu'avec cette configuration, l'en-tête host de la requête envoyée à mon laptop contient 192.168.1.120. En clair il effectue une requête http://192.168.1.120/[reste de l'adresse]. Et donc les vhosts de mon laptop ne sont pas fonctionnels.
Une solution serait pour chaque vhost de mon laptop, mettre un vhost sur le serveur, par exemple :
Code:
1 2 3 4 5 6 7
| <VirtualHost *>
ServerName modelixe.celelaptop.exemple.com
ProxyRequests Off
ProxyPass / http://modelixe.celelaptop.exemple.com/
ProxyPassReverse / http://modelixe.celelaptop.exemple.com/
</VirtualHost> |
Mais si je dois rajouter un vhost sur le serveur chaque fois que j'en crée un nouveau sur mon laptop, je suis pas sorti de l'auberge.
Une solution qui me paraît potable serait d'utiliser le fait que le mod_proxy rajoute l'en-tête X-Forwared-Host aux requêtes, et donc rajouter sur mon laptop une directive pour chaque vhost pour lui dire de regarder soit le header host, soit le header x-forwarded-host.
À votre avis c'est faisable ? Si oui, comment ?
Si non, vous avez une autre solution ?