nginx fastcgi cacheという機能
nginxには、優れたキャッシュ機能が備わっている。
キャッシュとは一時的に取り出しやすいところに置いておくというイメージだろうか。
ワードプレス + WEBサーバーの場合は、あるページにアクセスすると、データベースからデーターを取り出してphpでページを作り、WEBサーバー(この場合nginx)に、「はい どうぞ」と渡して、我々が見ることになる。
キャッシュは、一度表示したページをnginxが一時的に保管しておいて、データーベースまでデーターをとりにいかなくても良いことになる。
メリットは、いろんなプロセスを省いてページが表示されるので、CPUの節約、表示速度の向上など良いことがいっぱいある。
反面、デメリットとして新しいデーターが入っても、一定期間 反映できずに遅れてしまうことがある。
そこで、キャッシュをパージ(追放)する方法を考える必要がある。
特に、マルチサイトが問題だ!
キャッシュをパージ
Nginxの標準機能 時間経過で
新しい情報をゆっくりと表示できるようにするのであれば、nginxだけの設定で良い。
今は、これで良い気がしてきた。
あれこれと、設定を考えていたが、設定時間を60分にしておけば、そのうちに設定が反映されるのでよしとしよう。
WordPressのプラグイン
wordpress の プラグインに
- nginx helper
- nginx cache
- Nginx Cache Purge Preload
などがあります。
nginx helperプラグイン
マルチサイトでもサイトごとのキャッシュのパージが可能のようですが、Nginxのモジュールの追加が必要になるようです。自動でアップデートできないので、めんどくさいかな。
nginx cacheプラグイン
マルチサイトでもサイトごとのキャッシュのパージができない。
キャッシュのディレクトリを丸ごとパージしてしまうので、一度パージすると全くキャッシュがなくなるので、サイトの動作が遅く感じる。
Nginx Cache Purge Preloadプラグイン
まだ、試していないが、Nginxのモジュール追加の必要がなく、キャッシュも自動で作ってくれるなど、最も良い選択肢なのかもしれない。
Nginx fcgi-cache の最適解
Nginx Cache Purge Preloadプラグインを使ってみるか。