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 :Comem vous pouvez le voir, il y a un ServerAlias parce que je met des sous-sous-domaine pour chaque projet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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 :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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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 ?
Partager