nginxでキャッシュ設定をしたところ
httpヘッダーに
「x-cache-status EXPIRED」
というヘッダーが追加されていました。
どうすれば
「x-cache-status HIT」
となるのでしょうか?
キャッシュファイルを削除すれば
「x-cache-status HIT」になりましたが、1回目以降のアクセスは「x-cache-status EXPIRED」になります。
キャッシュフォルダーにはキャッシュが生成されていました。
「x-cache-status EXPIRED」は翻訳したら
「x-cache-status 有効期限切れ」なのでnginxの設定ミスでしょうか?
また
httpヘッダーに
「cache-control」が2つありました。
それぞれの内容
「cache-control max-age=3, must-revalidate」
「cache-control max-age=0」
です。
nginxはリバースプロキシ化してバックエンドにapacheを動かしています。
nginxの設定
nginx.conf
「
proxy_cache_path /var/cache/nginx/cache levels=2:2 keys_zone=cache_key:10m max_size=5g inactive=30m;
」
/conf.d/ドメイン名.conf
「
location ~* .(gif|jpg|png)$ {
expires 30d;
}
proxy_no_cache $do_not_cache;
proxy_cache_bypass $do_not_cache;
proxy_ignore_headers Cache-Control;
proxy_cache cache_key;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 10m;
add_header X-Cache-Status $upstream_cache_status;
set $do_not_cache 0;
set $keys_zone worklog;
if ($request_uri ~* '/(wp-admin/|wp-login.php|wp-cron.php|xmlrpc.php|??feed|wp-json|sitemap.xml)') {
set $do_not_cache 1;
}
if ($request_method != GET) {
set $do_not_cache 1;
}
if ($http_cookie ~* 'comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in') {
set $do_not_cache 1;
}
」
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。