クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Nginx

NginxのFastCGIキャッシュで白い画面がキャッシュされる

以前から、トップページにアクセスすると、レスポンスステータスは 200 で返ってくるのに、画面に何も表示されない現象が稀に見受けられたので調査してみました。

さすがに機会損失にも繋がるということで、サクっと調べてみたら、すぐに同様の症状に悩まされている記事をいくつか発見しました。

同様の問題と思われる現象

原因はリクエストメソッドが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 パスで検索して一部のキャッシュだけ強制的にクリアするケースがあるので、リクエストメソッドは後ろにしてみました。

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

Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/21 11:58:20時点 Amazon調べ-詳細)

あなたにオススメ