新しいコンテンツが数秒ごとに投稿されるDjango Webサイトがあります。サーバブロック内の特定の場所にNginxプロキシマイクロキャッシュを設定する
私のウェブサイトのホームページの認証されたユーザーは/
になりますが、無許可のユーザーは/unauth
になります。 /unauth
は、/
と同様の内容を示しますが、個人的な詳細はありません。私のウェブサイトでは、アップストリームとしてのgunicornでnginx(リバースプロキシ)を使用しています。
私はlocation/unauth
にnginx microcachingを実装しようとしているが、これまでのところ(何が今まで/var/cache/nginx
に表示しない)成功していません。 location/unauth
にadd_header X-Cache-Status $upstream_cache_status;
を追加しても、応答で何も返されません。これは、loctionブロックが完全に無視されるようなものです(!)。
このトラブルシューティングを手伝ってもらえますか?あなたがnginx.conf全体を見たいと思ったら私に教えてください。
私はnginxの設定ファイルに以下を追加しました:次のようにhttp://example.com/unauth/
から生成されたHTTPレスポンスヘッダがある
#outside the server block
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=6m;
#inside the server block
location /unauth {
add_header X-Cache-Status $upstream_cache_status;
proxy_cache my_cache;
proxy_cache_lock on;
proxy_cache_valid 200 1s;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_buffering on;
proxy_buffers 24 4k;
proxy_buffer_size 2k;
proxy_busy_buffers_size 8k;
try_files $uri @http_proxy_to_app;
}
:
Status: HTTP/1.1 200 OK
Server: nginx
Date: Sun, 05 Feb 2017 00:10:03 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
Expires: Sun, 05 Feb 2017 00:10:13 GMT
Vary: Cookie
Last-Modified: Sun, 05 Feb 2017 00:10:03 GMT
Cache-Control: max-age=10
X-Frame-Options: SAMEORIGIN
Content-Encoding: gzip
ロケーションブロックに 'add_header X-Cache-Status $ upstream_cache_status;'を追加してリクエストを再実行できますか?これは、リクエストがキャッシュにヒットしなかったかどうかに関する情報を提供します。 –
www-data:www-dataに変更してみてください。 @http_proxy_to_appへの内部リダイレクトを行っているためかもしれません。テストとして、代わりにそのブロックにキャッシュ設定を追加できますか? –