Re: Наследование директив
Maxim Dounin
mdounin на mdounin.ru
Вт Авг 15 10:34:37 UTC 2017
Hello!
On Tue, Aug 15, 2017 at 04:19:41AM -0400, igor.goncharenko wrote:
> Вопрос, наверное, был о том - нужно ли переназначать ВСЕ proxy_ директивы на
> данном уровне (как для заголовков) или наследование работает для каждой
> proxy_ директивы отдельно?
Не надо думать, что для заголовков действуют какие-то особые
правила. Наоборот, тут действует простое общее правило: значение,
заданое конкретной директивой, наследуется с предыдущего уровня,
если на данном уровне эта директива не используется.
Соответственно, если вы использовали на данном уровне директиву
proxy_set_header - то заданные на предыдущих уровнях заголовки
наследоваться не будут (а если не использовали - будут).
Аналогично и для proxy_read_timeout - если она на данном уровне
используется, то наследования не будет, а если нет - то будет
наследоваться значения с предыдущего уровня. И то же самое для
практически всех директив.
Исключения бывают, но они редки и при этом очевидны. Скажем,
директивы allow и deny задают список правил, и указание любой из
них приводит к отмене наследования всего списка правил. А
некоторые директивы не наследуются, как то: try_files, инструкции
модуля rewrite (rewrite, if, set, break, return), директивы,
устанавливающие обработчики в конкретном location'е (proxy_pass,
fastcgi_pass, scgi_pass, uwsgi_pass, memcached_pass, flv, mp4,
empty_gif, stub_status). И это наверное всё, если говорить про
исключния, для всего остального - действует общее правило.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru