文档中是这样说的:
当且仅当当前级别上没有定义 add_header 指令时,这些指令才会从上一级别继承。
我的问题是,我有几个location
想要缓存的块,比如这个:
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
expires 1w;
add_header Cache-Control public;
}
但这会让我丢失块外声明的所有标头。因此,显然唯一的方法是在每个位置块上复制这些标头,例如:
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
expires 1w;
add_header Cache-Control public;
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
}
似乎不对。有什么想法吗?
答案1
您正在寻找 ngx_headers_more 模块: https://www.nginx.com/resources/wiki/modules/headers_more/
是的,add_header 的行为确实令人恼火:)