ПРОЕКТЫ 


  АРХИВ 


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: location /



On 12.10.2011 13:12, Igor Sysoev wrote:

Когда-то Максим говорил, что в конфигурации всегда желательно
указывать "location /", но в примерах на сайте http://nginx.org/
не всегда указывается "location /", например, In catch-all server
examples, на странице http://nginx.org/en/docs/http/server_names.html

Вопрос: "всегда указывать location /" - это была рекомендация,
чтобы обойти какие-то глюки в старых версиях nginx, и сейчас,
в nginx 1.x.х это уже не актуально? или и сейчас есть какие-то случаи,
когда nginx не будет нормально работать без "location /" в конфиге ?

...

Ошибок там, AFAIK, сейчас нет, а вот нюансы присутствуют.
Например, вот эти два конфига радикально отличаются:

     server {
         rewrite ^(.*) /prefix$1;
     }

     server {
         rewrite ^(.*) /prefix$1;

         location / {
             # nothing here
         }
     }

в первом случае происходит зацикливание rewrite or internal redirection
cycle while processing "/prefix/prefix/prefix/prefix/prefix/prefix/..."
а во втором rewrite на уровне server отрабатывает всего один раз.

Именно.

И причина, в общем-то, очевидна - если знать нюансы.  В первом
конфиге на самом деле написано нечто вроде:

     server {
         rewrite ^(.*) /prefix$1;

         location / {
             rewrite ^(.*) /prefix$1;
         }
     }

И по понятным причинам будет цикл.

Патч для предотвращения цикла.

Максим, сейчас уже все известные "нюансы" которые могут быть
при отсутствии в конфиге "location /" устранены этим патчем,
или еще что-то из известных "нюансов" (ошибок) осталось?

и после того, как этот патч появится в стабильной ветке,
рекомендацию всегда указывать в конфигурации "location /"
можно будет считать устаревшей (для новых версий nginx) ?

потому что, как я понимаю, отсутствие location /
в конфиге теперь будет полностью эквивалентно
наличию явно указанного "location / { }" ?

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.