Dans Nginx, nous avons essayé de rediriger une URL de la manière suivante:
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é, disons qu'il clique sur le lien vers /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 conservez l'URL d'origine.
Nos tentatives ont impliqué diverses solutions utilisant des proxies et des règles de réécriture. Le schéma ci-dessous illustre la configuration qui nous a rapprochés le plus d'une solution (notez qu'il s'agit de la configuration de serveur Web pour le example.com
serveur Web). Cependant, il y a toujours deux problèmes avec ceci:
- La réécriture n’est pas effectuée correctement car l’URL de la demande reçue par le serveur Web
http://192.168.1.24
inclut/some/path
et ne peut donc pas servir la page requise. Lorsque vous passez la souris sur un lien une fois qu'une page a été servie, il
/some/path
manque l'URLserver { 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 implique uniquement de modifier la configuration du serveur Web example.com
. Nous sommes en mesure de modifier la configuration sur 192.168.1.24
(également sur Nginx), mais nous souhaitons éviter cela car nous devrons répéter cette configuration pour des centaines de serveurs différents dont l'accès est contrôlé par proxy example.com
.