add_header_inherit
Директива `add_header_inherit` позволяет применять унаследованные директивы заголовков на указанном уровне контекста в конфигурации NGINX. — NGINX HTTP Core
Описание
Директива `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` определено на правильном уровне контекста, чтобы добиться желаемого поведения при наследовании заголовков.