Dans Nginx, nous avons essayé de rediriger une URL comme suit :
http://example.com/some/path -> http://192.168.1.24
où l'utilisateur voit toujours l'URL d'origine dans son navigateur. Une fois que l'utilisateur est redirigé, s'il clique sur le lien /section/index.html
, nous voudrions que cela fasse une demande qui mène à la redirection
http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html
et encore une fois préserver l'URL d'origine.
Nos tentatives ont impliqué diverses solutions utilisant des proxies et des règles de réécriture, et ci-dessous montre la configuration qui nous a le plus rapproché d'une solution (notez qu'il s'agit de la configuration du serveur web pour le serveur web example.com
). Cependant, il reste deux problèmes avec ceci :
- Cela ne réécrit pas correctement, en ce sens que l'URL de demande reçue par le serveur web
http://192.168.1.24
inclut/some/path
et échoue donc à servir la page requise. -
Lorsque vous survolez un lien une fois qu'une page a été servie,
/some/path
est absent de l'URLserveur { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } }
Nous recherchons une solution qui ne consiste qu'à modifier la configuration du serveur web sur example.com
. Nous pouvons modifier la configuration sur 192.168.1.24
(également Nginx), cependant nous voulons essayer d'éviter cela car nous devrons répéter cette configuration pour des centaines de serveurs différents dont l'accès est proxifié via example.com
.