Nginx决定仅继承add_header具有最低级别的语句的决定背后的理由(可能是)?
例如:
server {
server_name example.com;
root my/root;
listen 443 ssl;
ssl_certificate my.cert;
ssl_certificate_key my.key;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy: default-src 'self' https:;
location ~* \.(gif|jpeg|jpg|png|css|js|ico|txt)$ {
add_header Cache-Control "public, max-age=86400";
}
}
Run Code Online (Sandbox Code Playgroud)
这些与安全性相关的头均未添加到与该location块匹配的资产中,专用于增加缓存时间,只是因为它添加了另一个头。
解决方法是将所有add_header指令复制到块中,这似乎与Nginx其余部分的工作方式(例如,root指令)相反。
该行为记录在这里:
可能有几个add_header指令。当且仅当当前级别上没有定义add_header指令时,这些指令才从上一级继承。
http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header
我猜有一个很好的解释,我很好奇它的意思。
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |