Re: как правильно написать правило proxy_redirect ?
Igor Sysoev
igor на sysoev.ru
Вт Авг 3 09:46:38 MSD 2010
On Tue, Aug 03, 2010 at 10:51:28AM +0600, Илья Шипицин wrote:
> попробовал версию под Windows 0.8.47, эффект такой же. особенность
> nginx под Windows ?
Покажите кусок отладочного лога в районе 'http proxy header: "Location: ...'.
> 2 августа 2010 г. 17:01 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> > On Mon, Aug 02, 2010 at 04:55:10PM +0600, Илья Шипицин wrote:
> >
> >> общение между nginx и бэкендом идет по http на порту 8066, это так, в
> >> редиректе бэкенд указывает
> >>
> >>
> >> Location: https://auth.kontur.ru/Authenticate.aspx?back=http%3a%2f%2fr66-extern.kontur.ru%3a8066%2fLogin.aspx
> >>
> >>
> >> примерно до половины все правильно, после параметра ?back= идет текст,
> >> который хочется поправить, чтобы получилось вот так
> >>
> >>
> >> Location: https://auth.kontur.ru/Authenticate.aspx?back=https%3a%2f%2fr66-extern.kontur.ru%2fLogin.aspx
> >
> > У меня заменяется:
> >
> > 2010/08/02 15:00:10 [debug] 29585#0: *1 http proxy header: "Location: https://auth.kontur.ru/Authenticate.aspx?back=http%3a%2f%2fr66-extern.kontur.ru%3a8066%2fLogin.aspx"
> > 2010/08/02 15:00:10 [debug] 29585#0: *1 http proxy header done
> > 2010/08/02 15:00:10 [debug] 29585#0: *1 rewritten location: "https://auth.kontur.ru/Authenticate.aspx?back=https%3a%2f%2fr66-extern.kontur.ru%2fLogin.aspx"
> >
> >
> >> 2 августа 2010 г. 16:52 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> >> > On Mon, Aug 02, 2010 at 04:48:43PM +0600, Илья Шипицин wrote:
> >> >
> >> >> нет, поменять надо то, что идет параметром в ?back=....
> >> >> протокол перед auth.kontur.ru должен остаться прежним, https
> >> >
> >> > Насколько я понимаю, бэкенд отвечает "http://..." или нет ?
> >> >
> >> >> 2 августа 2010 г. 16:46 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> >> >> > On Mon, Aug 02, 2010 at 04:36:05PM +0600, Илья Шипицин wrote:
> >> >> >
> >> >> >> Добрый день!
> >> >> >>
> >> >> >> есть вот такая связка
> >> >> >>
> >> >> >> внешний мир ---(https)---->nginx---(http на порту 8066)--->backend
> >> >> >>
> >> >> >> на один из запросов от бэкенда прилетает
> >> >> >>
> >> >> >> Location: https://auth.kontur.ru/Authenticate.aspx?back=http%3a%2f%2fr66-extern.kontur.ru%3a8066%2fLogin.aspx
> >> >> >>
> >> >> >> как видим, здесь указан порт 8066 и протокол http. хотелось бы подменить его на
> >> >> >>
> >> >> >> Location: https://auth.kontur.ru/Authenticate.aspx?back=https%3a%2f%2fr66-extern.kontur.ru%2fLogin.aspx
> >> >> >>
> >> >> >> конфиг я нарисовал такой:
> >> >> >>
> >> >> >> ------------------------------------------------------------------------------------------
> >> >> >> worker_processes 1;
> >> >> >>
> >> >> >> error_log logs/error.log notice;
> >> >> >>
> >> >> >> events {
> >> >> >> worker_connections 2048;
> >> >> >> }
> >> >> >>
> >> >> >>
> >> >> >> http {
> >> >> >> server_tokens off;
> >> >> >> include mime.types;
> >> >> >> default_type application/octet-stream;
> >> >> >>
> >> >> >> access_log logs/access.log combined;
> >> >> >>
> >> >> >> sendfile on;
> >> >> >> keepalive_timeout 65;
> >> >> >>
> >> >> >> server {
> >> >> >> listen 443 default backlog=1024 ssl;
> >> >> >> server_name localhost;
> >> >> >>
> >> >> >> ssl on;
> >> >> >> ssl_certificate cert.pem;
> >> >> >> ssl_certificate_key key.pem;
> >> >> >>
> >> >> >> ssl_session_timeout 5m;
> >> >> >>
> >> >> >> ssl_protocols SSLv2 SSLv3 TLSv1;
> >> >> >> ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
> >> >> >> ssl_prefer_server_ciphers on;
> >> >> >>
> >> >> >> location / {
> >> >> >> proxy_pass http://vm-keweb5:8066;
> >> >> >> proxy_cache off;
> >> >> >> proxy_connect_timeout 500;
> >> >> >> proxy_send_timeout 500;
> >> >> >> proxy_read_timeout 500;
> >> >> >> proxy_redirect
> >> >> >> https://auth.kontur.ru/Authenticate.aspx?back=http%3a%2f%2fr66-extern.kontur.ru%3a8066%2fLogin.aspx
> >> >> >> https://auth.kontur.ru/Authenticate.aspx?back=https%3a%2f%2fr66-extern.kontur.ru%2fLogin.aspx;
> >> >> >> }
> >> >> >> }
> >> >> >>
> >> >> >> }
> >> >> >> ---------------------------------------------------------------
> >> >> >>
> >> >> >> судя по сниферу (и по ответам http), подмена ответа не происходит. как
> >> >> >> это можно диагностировать ? в чем я ошибся ?
> >> >> >
> >> >> > proxy_redirect
> >> >> > - https://auth.kontur.ru/...
> >> >> > + http://auth.kontur.ru/...
> >> >> > https://auth.kontur.ru/...
> >> >> >
> >> >> >
> >> >> > --
> >> >> > Игорь Сысоев
> >> >> > http://sysoev.ru
> >> >> >
> >> >> > _______________________________________________
> >> >> > nginx-ru mailing list
> >> >> > nginx-ru at nginx.org
> >> >> > http://nginx.org/mailman/listinfo/nginx-ru
> >> >> >
> >> >> _______________________________________________
> >> >> nginx-ru mailing list
> >> >> nginx-ru at nginx.org
> >> >> http://nginx.org/mailman/listinfo/nginx-ru
> >> >
> >> > --
> >> > Игорь Сысоев
> >> > http://sysoev.ru
> >> >
> >> > _______________________________________________
> >> > nginx-ru mailing list
> >> > nginx-ru at nginx.org
> >> > http://nginx.org/mailman/listinfo/nginx-ru
> >> >
> >> _______________________________________________
> >> nginx-ru mailing list
> >> nginx-ru at nginx.org
> >> http://nginx.org/mailman/listinfo/nginx-ru
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://nginx.org/mailman/listinfo/nginx-ru
> >
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru