add_header
`add_header` 指令在 NGINX 中设置 HTTP 响应头。
NGINX HTTP Core
·
httpserverlocationif in location
语法add_header name value [always];
默认值none
上下文http, server, location, if in location
参数2-3
说明
add_header 指令允许在 NGINX 发送的响应中包含特定的 HTTP 头。对于配置参数(如安全策略 (Strict-Transport-Security, Content-Security-Policy))或管理缓存行为(Cache-Control, Expires)特别有用。指定时,它会为定义的上下文 (http, server, or location) 设置这些头。\n\n可以使用多个 add_header 指令定义多个头,如果该头已存在,使用此指令可以修改其值。一个需要注意的关键行为是,add_header 不会覆盖已存在的头,除非使用 always 参数;使用 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)中定义的响应头。
⚠
注意重复的响应头 — 在重新定义时只有最后定义的值会生效。