nginxのproxy_cacheが効いていなかったお話

負荷軽減のために、nginxを用いてcacheを蓄えcacheから応答するように設定していたが、効いていなかったお話

発覚した理由

JMeterを使って負荷テストを行ったところ、バックエンドのApacheでCPU使用率が
一向に下がらず、Apache側のアクセスログも永遠と出力され続けていたので調査したら発覚した。

切り分けするためにやったこと

nginxには、cacheにヒットしたことをhttpヘッダに出力させる機能があったのでこちらで確認

キャッシュにヒットしたら

のようにHITと表示される

キャッシュにヒットしなかったら

のようにMISSと表示される

試したこと

先人の知恵を借りて、以下の設定を入れるもキャッシュされず

原因

困り果てた私は、もう諦めかけていた。
しかし、WEBの表示パフォーマンスが落ちるだろうと勝手に思っていたある設定を変更してみることに

元々、offにしていたがonにしたところキャッシュされて見事

となった。

まとめ

proxy_bufferingもリバースプロキシのキャッシュに関わっている設定であることがわかった。

キャッシュは効いているだろうと勝手に思っていたら、実は効いていなかったってこともあるので負荷テストなどで実際の動作は知っておくべきだなと思います。

Avatar photo

SNOWSKI

大阪にあるどこかのIT会社で働いております / もしかするとあなたのそばにいるかもね...