ポート8080で実行されているNode.jsアプリケーションがあり、NGINXサーバーが前面で実行され、キャッシングリバースプロキシとして機能しています。
NGINXに、アプリケーションのダッシュボードである1ページを除くすべてのページをキャッシュさせたい:/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
れないようにキャッシュされたページへの/
か/login
。
私の現在の構成に何か問題がありますか?問題を解決するにはどうすればよいですか?
処理中のロケーションブロック内に「add_headers」がある場合、ロケーションブロック外の「add_header」ディレクティブは無視されます。「/ dashboard」には「add_header」がないため、サーバーレベル1が使用されています。
毎のドキュメント:
複数のadd_headerディレクティブが存在する可能性があります。これらのディレクティブは、現在のレベルでadd_headerディレクティブが定義されていない場合にのみ、前のレベルから継承されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加