2012-12-17 12 views
6

Ho un server nginx che elabora richieste PHP, ma è configurato per l'ascolto su una porta non standard (porta 12345 o qualcosa del genere). Non riesco a cambiare la porta di ascolto perché l'IT aziendale dice "No".301 Reindirizzamento su macchina nginx che esegue una porta non standard dietro un proxy

C'è un proxy nel centro di dati che inoltra le richieste da www.domain.com:80 alla casella nginx sulla porta 12345.

ho un po 'statica 301 redirect che ho bisogno di mettere in atto, ma Sto ricevendo un comportamento inaspettato.

Esempio reindirizza in site.conf "server {}" blocco:

rewrite ^/foo$ /bar/foo/ permanent; 

Quando tento di andare www.domain.com/foo, il reindirizzamento accade, ma cerca di trasmettere il browser per www.domain.com:12345/bar/foo/

La mia domanda è, come posso ottenere nginx per reindirizzare l'utente alla porta corretta (www.domain.com/bar/foo/)?

Forse una domanda migliore è, qual è il modo corretto di fare quello che sto chiedendo? Ci sono oltre 50 reindirizzamenti che devono entrare e preferisco non creare una sezione "posizione" per ciascuno di questi reindirizzamenti.

risposta

2

È possibile fornire una riscrittura più esplicita. Provare quanto segue:

rewrite ^/foo/ $scheme://www.domain.com:80/bar$request_uri permanent; 

ho assunto che si intende utilizzare ^/foo/ invece di ^/foo$, dal momento che ^/foo$ è un caso molto specifico. Basta rivedere se necessario.

+1

Grazie, Kevin. Intendevo davvero ^/foo/perché è un URL specifico che sto prendendo di mira (per richiesta di marketing). Funziona alla grande e l'ho leggermente modificata: riscrivi ^/foo/$ schema: // $ server_name: 80/bar/permanente; – Jason

Problemi correlati