add_header_inherit

Директива `add_header_inherit` позволяет применять унаследованные директивы заголовков на указанном уровне контекста в конфигурации NGINX. — NGINX HTTP Core

add_header_inherit
httpserverlocationif in location
Синтаксисadd_header_inherit on | off;
По умолчаниюoff
Контекстhttp, server, location, if in location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `add_header_inherit` управляет наследованием директив заголовков, установленных с помощью `add_header`. Когда эта директива задана, она позволяет любым директивам `add_header`, определённым в родительском контексте (например, http или server), наследоваться дочерними контекстами (например, location). Это особенно полезно для обеспечения согласованности заголовков на разных уровнях конфигурации без необходимости повторно определять заголовки в каждом контексте, что упрощает управление конфигурацией. Директива принимает один аргумент, который указывает, следует ли включить или отключить это наследование: значение `on` разрешает наследование, а `off` — запрещает его. По умолчанию наследование отключено, если оно явно не включено. Когда наследование включено, любые заголовки, добавленные в родительском контексте, автоматически будут включены в ответы дочернего контекста, что позволяет серверу поддерживать единообразные заголовки, такие как заголовки безопасности, политики кэширования или пользовательские заголовки, которые вы хотите применить глобально в конкретном блоке конфигурации. Это повышает как безопасность, так и производительность за счёт уменьшения избыточности определений заголовков в нескольких блоках контекста или в location.

Пример конфига

http {
    add_header X-Frame-Options "DENY";
    server {
        add_header_inherit on;
        location /api {
            # /api will inherit the X-Frame-Options header
        }
    }
}

Если `add_header_inherit` установлено в `off`, заголовки, определённые в родительских контекстах, не будут унаследованы, что может привести к отсутствию заголовков в ответах.

Убедитесь, что `add_header_inherit` определено на правильном уровне контекста, чтобы добиться желаемого поведения при наследовании заголовков.