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