WEBサーバーnginxのキャッシュで失敗した設定 proxy_cache fastcgi_temp

サーバー設定

みなさん、こんにちは武智建樹です。

最近、暇があればnginxをポチポチ触っていろいろな設定を自分の目で見て楽しんでいます。


さて、今回はnginxのキャッシュに挑戦してみました。

wordpressの高速化!キャッシュについてのアレコレを参考に

バックグラウンドにapacheを使用したproxy_cacheや、php-fpmを使用したfastcgi_tempを

試してみました。


今までキャッシュファイルを作成するキャッシュ方法はあまり好きではありませんでした。

(ディスクアクセスによる遅延が発生しそうなので・・・)

ので、ついでにHDD・SSD?より高速なメモリディスクを利用したキャッシュ設定を試してみました。

最近のLinux OSでは、標準でメモリディスクが設定されているのかな?

tmpfs /dev/shm

デフォルトの/dev/shmをそのままnginxのキャッシュ置場として設定してもいいのですが

nginxのキャッシュを一瞬で削除したりしたいので、他のシステムのファイルが混合しないように

nginx専用のtmpfsを新しく作成しました。

/etc/fstab
------------------------------
↓ 追加
tmpfs /var/cache/nginx tmpfs defaults,noatime,mode=1777,size=256m 0 0
------------------------------


特に難しい設定もなくproxy_cacheやfastcgi_tempフォルダに、各キャッシュファイルがどんどん作成されていきます。

ブラウザーで確認してみると、数100倍くらいレスポンスが良くなっているのを確認できます。


しばらく様子を見ていると、ページが真っ白になって何も表示されない不具合に遭遇。あれ?

エラーファイルを確認すると、キャッシュが作成できないエラーが大量発生中・・・


なるほど!ディスクの空き容量がなくなると、古いファイルから自動で削除されるものだと

思っていました。(都合良すぎです。nginxに関係ないですもんね)

sizeを%で設定した方が良いのかな?

大容量のメモリーを搭載しているサーバーなら数GBを設定しておけば良いし

サイトのページ数(ボリューム)とキャッシュの有効期限を調整してみるのもいいかもしれませんね。

関連記事