In Nginx abbiamo cercato di reindirizzare un URL come segue:
http://example.com/some/path -> http://192.168.1.24
dove l'utente vede ancora l'URL originale nel proprio browser. Una volta che l'utente viene reindirizzato, supponiamo che /section/index.html
faccia clic sul collegamento a , vorremmo che questo facesse una richiesta che porta al reindirizzamento
http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html
e ancora preservare l'URL originale.
I nostri tentativi hanno coinvolto varie soluzioni che utilizzano proxy e riscrivono le regole e di seguito mostra la configurazione che ci ha avvicinato di più a una soluzione (si noti che questa è la configurazione del server Web per il example.com
server Web). Tuttavia, ci sono ancora due problemi con questo:
- Non esegue correttamente la riscrittura, in quanto
http://192.168.1.24
include l'URL della richiesta ricevuto dal server Web/some/path
e quindi non riesce a servire la pagina richiesta. Quando passi con il mouse su un link una volta che una pagina è stata pubblicata,
/some/path
manca dall'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; } }
Stiamo cercando una soluzione che implichi solo la modifica della configurazione del server Web example.com
. Siamo in grado di cambiare la configurazione 192.168.1.24
(anche Nginx), tuttavia vogliamo provare a evitarlo perché dovremo ripetere questa configurazione per centinaia di server diversi il cui accesso è proxy example.com
.