WordPress高速化: nginxのプロキシ・キャッシュ+RAMディスク

高速

前回はWP Super CacheプラグインとRAMディスク(tmpfs)を組み合わせてWordPressの更なる高速化を測ってみました。

今回はnginxのプロキシキャッシュとRAMディスクを組み合わせて見ます。

プロキシキャッシュの設定の見直し

現在のプロキシキャッシュの設定(は次のようになっています。

# for proxy cache
proxy_cache_path  /var/cache/nginx/scratchpad.jp levels=1 keys_zone=scratchpad.jp:64m;
proxy_cache scratchpad.jp;
proxy_cache_valid 200 404 60m;

いろいろ調べているとキャッシュの有効期限と、最大サイズを指定するオプションがあるようですので、それを追加しておきます(2行目の末尾)。ここでは有効期限1日、最大サイズは512MBとしておきます(後ほど作るRAMディスクのサイズと合わせます) 。

# for proxy cache
proxy_cache_path  /var/cache/nginx/scratchpad.jp levels=1 keys_zone=scratchpad.jp:64m inactive=1d max_size=512m;
proxy_cache scratchpad.jp;
proxy_cache_valid 200 404 60m;

RAMディスク(tmpfs)の準備

RAMディスクとしてはLinuxのtmpfsというファイルシステムを使います。詳しくは前々回を参照してください。

512MBのRAMディスクを/var/cache/nginxに作成するには次の一行を/etc/fstabに追加します。

tmpfs /var/cache/nginx tmpfs size=512m,mode=775,uid=www-data,gid=www-data 0 0

前々回と同様にユーザ・グループをwww-dataとなるように設定している点に注意してください。

RAMディスクの有効化

それでは用意したRAMディスクを有効化します。いったんnginxを止め、既存のキャッシュを削除したあと、RAMディスクをマウントしてからnginxを再起動します。

/etc/init.d/nginx stop
rm -rf /var/cache/nginx/*
mount /var/cache/nginx
/etc/init.d/nginx start

これでRAMディスクがnginxのプロキシキャッシュ用のディレクトリにマウントされて利用できるようになります。

mountコマンドを実行するとRAMディスクがマウントされているのがわかります。

mount
/dev/simfs on / type reiserfs (rw,usrquota,grpquota)
tmpfs on /usr/share/wordpress/wp-content/cache type tmpfs (rw,size=512m,mode=775,uid=33,gid=33)
tmpfs on /var/cache/nginx type tmpfs (rw,size=512m,mode=775,uid=33,gid=33)

まとめ

今回はVPSの増量されたメモリを活用しさらにWordpressを高速化させるために、nginxのプロキシ・キャッシュ用のディレクトリをRAMディスクに変更してみました。

次回は速度を計測したいと思います。