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
|