質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Q&A

解決済

1回答

2057閲覧

nginxのキャッシュの設定がわからない

ichirus

総合スコア23

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

0グッド

0クリップ

投稿2022/03/14 12:52

編集2022/03/16 12:19

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;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました。
これはバックエンド側のapacheのキャッシュモジュールが悪さをしていました。
apacheの

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cache_socache_module modules/mod_cache_socache.so
LoadModule expires_module modules/mod_expires.so

を無効にしたところキャッシュされました。
cache-controlも1つだけになりました。

投稿2022/03/16 03:19

ichirus

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問