如何在 nginx 中的所有服务器块上发送 HTTP 标头?

如何在 nginx 中的所有服务器块上发送 HTTP 标头?

假设我有一个正在运行的 nginx 实例,其中包含多个服务器块(在 Linux 服务器上),并且我想Permissions-Policy: interest-cohort=()在所有响应上发送一个额外的 HTTP 标头,因为我同意Google 的 FLOC 不是一个好主意

我知道这可以在每个服务器块的基础上完成(通过/etc/nginx/sites-available/*逐个编辑我的每个文件),通过添加类似

server {
    location / {
        add_header Permissions-Policy interest-cohort=();
        # ...other stuff
    }
    # ...other stuff
}

是否可以为所有服务器块的所有位置配置这个额外的 HTTP 标头立刻? 如果是,怎么办?

答案1

根据nginx 文档, 是的:

句法: 添加标题名称值 [始终];
默认值:—
上下文:http、服务器、位置、如果在位置

当响应代码等于 200、201(1.3.10)、204、206、301、302、303、304、307(1.1.16、1.0.13)或 308(1.13.0)时,将指定字段添加到响应头。参数值可以包含变量。

add_header 指令可以有多个。当且仅当当前级别上没有定义 add_header 指令时,这些指令才会从上一个配置级别继承。

如果指定了always参数(1.7.5),那么无论响应代码如何,都会添加标头字段。

通过放入http它将适用于所有server块。

相关内容