location /

Gena Makhomed gmm на csdoc.com
Вт Окт 18 18:47:07 UTC 2011


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