Re: Неправильный порт в редиректах
Igor Sysoev
igor на sysoev.ru
Чт Янв 28 14:12:40 MSK 2010
On Tue, Jan 19, 2010 at 03:04:54PM -0500, Ruslan wrote:
> Использую nginx как фронтенд, tomcat за backend. Фронтенд висит на 8111, бэкенд на 8180. Все хорошо, но когда томкат отдает 302 redirect, джинкс почему-то пребрасывает его на стандартный 80-й порт. Т.е. томкат отдает Location: http://localhost:8180/wicket/index, что на выходе с nginx становится http://www.my.site/wicket/index -- хотя, повторяю, джинкс висит на 8111 порту.
>
> конфиг:
>
> location / {
> rewrite /flowplayer/(.*) /flowplayer/$1 break;
> rewrite /pages/(.*) /pages/$1 break;
> rewrite /wicket/(.*) /wicket/$1 break;
> rewrite /(.*) /wicket/$1 break;
>
> proxy_pass http://localhost:8180/;
> #proxy_redirect http://localhost:8180/ http://$host:$server_port/;
> #proxy_redirect default;
> #proxy_redirect off;
> proxy_redirect http://localhost:8180/ http://$host:8111/;
> proxy_redirect http://www.tvintime.info:8180/ http://$host:8111/;
> proxy_redirect http://tvintime.info:8180/ http://$host:8111/;
> proxy_redirect http://localhost/ http://$host:8111/;
> proxy_redirect / /;
>
> #port_in_redirect off;
>
> proxy_set_header Host $host;
> ....
> }
>
>
> закоментированные и раскоментированные варианты proxy_redirect я перепробовал в самых разных комбинациях.
>
> Сталкивался кто-нибудь с таким? Чем лечится?
А что это за кошмар с rewrite'ами ? От RewriteRule'ов нужно отвыкать, да.
proxy_set_header Host $host;
port_in_redirect on;
proxy_redirect http://localhost:8180/ /;
location / {
proxy_pass http://localhost:8180/wicket/;
}
location /wicket/ {
proxy_pass http://localhost:8180;
}
location /pages/ {
proxy_pass http://localhost:8180;
}
location /flowplayer/ {
proxy_pass http://localhost:8180;
}
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru