Nginx - 删除 Last_Modified 标头也会删除 CORS 标头?

UpT*_*eek -1 nginx

我正在尝试从 Nginx 响应中删除 Last_Modified 标头。

我读过这可以通过配置中的这一行来实现:

 add_header Last-Modified '';
Run Code Online (Sandbox Code Playgroud)

这有效,但是由于某种原因,我们的 CORS 访问控制标头不再发送。我假设这可能是一个错误(我们使用的是 v1.2.6),但希望得到其他人的意见。

为什么会这样?以及如何删除 Last-Modified,但保留 Access-Control 标头?

我们的配置文件如下所示:

http {

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';

    server {
        listen 80;
        server_name xxxxxxxxxxxxxxxxx;
        root xxxxxxxxxxxxxxxxx

        expires 1y;
        log_not_found off;

        add_header Last-Modified '';
    }
}
Run Code Online (Sandbox Code Playgroud)

wom*_*ble 6

nginxadd_header指令有点……特殊,当它从一个不太具体的范围继承时,它的行为是粗心的陷阱。正如文档所述:

可能有几个 add_header 指令。当且仅当在当前级别上没有定义 add_header 指令时,这些指令才从上一级继承。

,一旦你指定,这意味着任何 add_header在给定的配置块指令,你还必须指定任何add_header从要保留无特定范围的指令。