add_header
Директива `add_header` устанавливает заголовки HTTP-ответа в NGINX.
Описание
Директива add_header позволяет включать определённые HTTP-заголовки в ответы, отправляемые NGINX. Это особенно полезно для параметров конфигурации, таких как политики безопасности (Strict-Transport-Security, Content-Security-Policy) или для управления поведением кэширования (Cache-Control, Expires). При указании она устанавливает заголовки для заданного контекста (http, server или location).
Можно определить несколько заголовков с помощью нескольких директив add_header, и если заголовок уже существует, его значение можно изменить с помощью этой директивы. Важная особенность: add_header не перезаписывает существующие заголовки, если не используется параметр always, который гарантирует включение добавленных заголовков даже когда код ответа указывает на ошибку (например, 4xx или 5xx). Это позволяет управлять видимостью заголовков независимо от логики ответа приложения.
Пример конфига
server {
listen 80;
server_name example.com;
add_header X-Frame-Options "DENY";
location / {
add_header Content-Security-Policy "default-src 'self'";
}
}Если вы забудете указать 'always', заголовки могут не включаться в ответах об ошибках (4xx/5xx).
Заголовки, добавленные в вложенном контексте (например, location), переопределят заголовки, определённые в родительском контексте (например, server).
Будьте осторожны с дублирующимися заголовками — при повторном определении в силу вступит только последнее значение.