nested location inheritance

Maxim Dounin mdounin at mdounin.ru
Tue Jan 13 13:36:10 UTC 2015


Hello!

On Mon, Jan 12, 2015 at 11:33:35PM +0300, Vasil Mikhalenya wrote:

> Большое спасибо, так значительно компактнее.
> Можно пару слов, чем обусловлена такая реализация

Идея состоит в том, что все настройки/опции - наследуются.  Это 
позволяет писать простые и эффективные с точки зрения ресурсов 
конфиги.

Не наследуются только некоторые специальные директивы, 
предназначенные для использования в конкретных location'ах:

- Директивы, включающие какую-либо безусловную обработку запросов 
  в рамках данного location'а вместо выдачи статических файлов (из 
  стандартных - proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass, 
  memcached_pass, flv, mp4, stub_status, empty_gif, perl).

- Инструкции модуля rewrite.

- Директива try_files.

Собственно, до появления вложенных location'ов эти особенности 
вообще никак не были видны с точки зрения пользователя, т.к. 
упомянутые директивы (кроме разве что try_files с некоторых пор) 
нельзя было использовать вне контекста location (или, как в случае 
с инструкциями rewrite, они там документировано работали по 
другому).  Да и сейчас случаи, когда директивы не наследуются, 
более или менее очевидны.

> и где в документации
> описаны данные особенности, если описаны?

Явного описания, вероятно, не существует.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru