我有一个Node.js应用程序,在端口8080上运行,前面运行NGINX服务器并充当缓存反向代理。
我希望NGINX缓存每一个页面,除了一个页面,我的应用程序的dashbaord:/dashboard
。
到目前为止,这是我的配置:
server {
listen 80;
server_name mydomain.name;
# SECURITY
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' https://gravatar.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; object-src 'none'";
...
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache STATIC;
proxy_pass http://127.0.0.1:8080;
}
location /dashboard {
proxy_pass http://127.0.0.1:8080/dashboard;
}
}
缓存似乎运行正常,但安全标头(X-XSS-Protection
,Content-Security-Policy
等)似乎只添加到/dashboard
而不是{{1}的缓存页面}或/
。
我目前的配置是否有问题?我该怎么做才能解决问题?
答案 0 :(得分:1)
如果正在处理的位置块中有“add_headers”,则忽略位置块之外的任何“add_header”指令。由于“/ dashboard”没有“add_header”,服务器级别1正在使用中。
根据docs:
可能有几个add_header指令。当且仅当在当前级别上没有定义add_header指令时,这些指令才从前一级继承。