目次

原因はリクエストメソッドがHEADの場合

どちらかというと、fastcgi_cache_path で設定する、keys_zone や max_size の容量が問題かなと想定していたのですが、まさかキャッシュされる際のキャッシュキーがリクエストメソッド違いで同様に扱われてしまっているとは思いませんでした。

また、普段、GET や POST ではなく、リクエストヘッダの METHOD で HEAD が送信されてくるって意識はあまりないですからね。

結果的には、この fastcgi_cache_key をリクエスト URL だけにしていたところを、後ろにリクエストメソッドを足してあげるようにしました。

# 変更前
fastcgi_cache_key "$request_uri";

# 変更後
fastcgi_cache_key "$request_uri$request_method";

前に付けてもいいのですが、URL パスで検索して一部のキャッシュだけ強制的にクリアするケースがあるので、リクエストメソッドは後ろにしてみました。

個人的なサイトでしか運用していなかったので、なかなか本格的に調べていなかったのですが、もっと早い段階で調査しておけば良かったなっと後悔です。

Tips記事一覧

新着記事一覧です。

関連記事一覧