add_header

`add_header` 指令在 NGINX 中设置 HTTP 响应头。

语法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)中定义的响应头。

注意重复的响应头 — 在重新定义时只有最后定义的值会生效。

← 返回所有指令