我正在尝试从 Nginx 响应中删除 Last_Modified 标头。
我读到过,这可以通过配置中的这一行来实现:
add_header Last-Modified '';
这有效,但是由于某种原因,我们的 CORS Access-Control 标头不再发送。我假设这可能是一个错误(我们使用的是 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 '';
}
}
答案1
nginxadd_header
指令有点...特殊,当从不太具体的范围继承时,其行为对于粗心大意的人来说是一个陷阱。正如文档所述:
add_header 指令可以有多个。当且仅当当前级别上没有定义 add_header 指令时,这些指令才会从上一级继承。
这意味着,一旦你指定任何 add_header
除了给定配置块中的指令之外,您还必须指定add_header
要保留的不太具体范围的任何指令。