Comment les vieux Indiens préservent-ils leurs hôtes ?

Si vous êtes arrivé ici, c’est que vous avez certainement essayé d’utiliser le « ProxyPreserveHost On » sur Apache 1.3. Sachez que vous devez utiliser Apache 2.0 ou patcher Apache 1.3 pour avoir cette fonctionnalité. Mais si aucune de ces deux solutions n’est possible pour vous et que vous n’utilisez pas une infinité de vhosts (avec l’utilisation des wildcards par exemple), vous pouvez utiliser des vhosts multiples, comme ceci.


<VirtualHost *:80>
ProxyPass / http://www.example.com/
ProxyPassReverse / http://example.com/
ServerName www.example.com
ServerAlias example.com
</VirtualHost>

<VirtualHost *:80>
ProxyPass / http://secure.example.com/
ProxyPassReverse / http://secure.example.com/
ServerName secure.example.com
</VirtualHost>

<VirtualHost *:80>
ProxyPass / http://backstage.example.com/
ProxyPassReverse / http://backstage.example.com/
ServerName backstage.example.com
</VirtualHost>

Vous pouvez même générer le fichier de configuration avec un script si vous avez une liste trop longue de vhosts (il vaut mieux alors inclure le fichier généré en utilisant la directive Include).

Vous aurez aussi à mettre votre fichier /etc/hosts à jour sur le serveur apache pour désigner l’emplacement du serveur local derrière le proxy. Ou bien vous pouvez mettre un serveur DNS local si vous voulez en utilisez un. Le but étant de spécifier le serveur local sur le serveur apache même. En utilisant cette technique, vous pouvez passer le bon nom de domaine au serveur local.