ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: strange redirect



On Wed, Feb 20, 2008 at 08:41:48PM -0800, Konstantin Svist wrote:

> Igor Sysoev wrote:
> >On Wed, Feb 20, 2008 at 12:47:26AM -0800, Konstantin Svist wrote:
> >
> >  
> >>Я заметил что некоторые страницы не работают через nginx.
> >>
> >>Пример:
> >>http://www.google.com/ig/dell
> >>
> >>
> >>Конфигурация:
> >>server {
> >>   listen 1088;
> >>   server_name foobar.mysite.com;
> >>   location / {
> >>       proxy_pass http://www.google.com/ig/dell;
> >>   }
> >>}
> >>
> >>
> >>При этом, брандмауэр (router) переводит порт 80 -> 1080 (а 1080 спрятан 
> >>от пользователя)
> >>
> >>
> >>Результат:
> >>
> >>$ curl -v 'http://foobar.mysite.com'
> >>...
> >>< HTTP/1.1 302 Found
> >>< Server:
> >>< Date: Wed, 20 Feb 2008 08:36:08 GMT
> >>< Content-Type: text/html; charset=UTF-8
> >>< Location: http://foobar.mysite.com:1088/
> >>< Connection: keep-alive
> >>...
> >>
> >>
> >>Похоже что возвращается 302 redirect на http://foobar.mysite.com:1088/ - 
> >>но тот порт закрыт/спрятан. С curl-ом нет проблем - но browser просто 
> >>висит, пытаясь безуспешно достучаться до закрытого порта.
> >>    
> >
> >http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#port_in_redirect
> >
> >  
> 
> 
> Всё-таки не помогает..
> 
> 
> $ curl -v 'http://foobar.mysite.com/ig/dell'
> 
> < HTTP/1.1 302 Found
> < Server:
> < Date: Thu, 21 Feb 2008 04:07:17 GMT
> < Content-Type: text/html; charset=UTF-8
> < Location: http://foobar.mysite.com/ig/dell
> < Connection: keep-alive
> ...
> 
> 
> А в firefox-е:
> "The page isn't redirecting properly"
> (т.е. бесконечный редирект)
> 
> 
> Почему-то www.google.com видит что-то не то, и отправляет редирект если 
> идём через nginx.
> При нормальном запросе:
> 
> $ curl -v 'http://www.google.com/ig/dell'
> ...
> < HTTP/1.1 200 OK
> < Pragma: no-cache
> < Cache-Control: no-store, no-cache, must-revalidate
> < Expires: -1
> < Content-Type: text/html; charset=ISO-8859-1
> ...

У меня не воспроизволится. Нужен отладочный лог.
Кроме того, 
proxy_pass http://www.google.com/ig/dell;
приводит к тому, что /ig/f/_lkeI04SsjU/ig.js и /ig/images/x2.gif
запрашиваются как /ig/dellig/f/_lkeI04SsjU/ig.js и /ig/dellig/images/x2.gif.

Нужно описывать два location'а

   locaiton = / {

   locaiton /ig/ {


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.