2012-12-17 13 views
6

Mam serwer nginx przetwarzający żądania PHP, ale jest skonfigurowany do nasłuchu na niestandardowym porcie (port 12345 lub coś w tym stylu). Nie mogę zmienić portu nasłuchiwania, ponieważ informatyka korporacyjna mówi "Nie"301 Przekierowanie na maszynie nginx z niestandardowym portem za serwerem proxy

Jest pełnomocnikiem w centrum danych, który przekazuje żądania z www.domain.com:80 do skrzynki nginx na porcie 12345.

mam jakiś statyczny 301 przekierowuje że muszę umieścić na swoim miejscu, ale Otrzymuję nieoczekiwane zachowanie.

Próbka przekierowania w site.conf „server {}” blok:

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

Gdy próbuję przejść do www.domain.com/foo, przekierowanie nastąpi, ale stara się przekazać do przeglądarki www.domain.com:12345/bar/foo/

Moje pytanie brzmi: jak mogę zmusić nginx do przekierowania użytkownika do właściwego portu (www.domain.com/bar/foo/)?

Może lepszym pytaniem jest, jaki jest właściwy sposób robienia tego, o co pytam? Istnieje 50 przekierowań, które trzeba wprowadzić, ale wolę nie tworzyć sekcji "lokalizacja" dla każdego z tych przekierowań.

Odpowiedz

2

Możesz podać bardziej bezpośrednie przeróbki. Spróbuj wykonać następujące czynności:

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

mam przyjąć, że chodziło o użycie ^/foo/ zamiast ^/foo$, ponieważ ^/foo$ jest bardzo specyficzny przypadek. Wystarczy zmienić w razie potrzeby.

+1

Dzięki, Kevin. Naprawdę miałem na myśli ^/foo /, ponieważ jest to konkretny adres URL, na który jestem kierowany (na każde żądanie marketingowe). Działa świetnie, a ja go trochę zmodyfikowałem: przepisuję ^/foo/$ schemat: // $ nazwa_serwera: 80/bar/permanent; – Jason

Powiązane problemy