add_header
`add_header` 指令在 NGINX 中设置 HTTP 响应头。 — NGINX HTTP Core
add_header
httpserverlocationif in location
语法add_header name value [always];
默认值none
上下文http, server, location, if in location
模块NGINX HTTP Core
参数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)中定义的响应头。
⚠
注意重复的响应头 — 在重新定义时只有最后定义的值会生效。