Nginx Cache Controllerの設定と使い方

「網元AMI Masterへの道」も第4回になりました。
今回から網元AMI + WordPressのおすすめの運用方法をご紹介します。
まずは網元AMIのWordPressに同報されているプラグイン「Nginx Cache Controller」をご説明します。

Nginx Cache Controller

http://wordpress.org/plugins/nginx-champuru/

Nginx-Cache-Controller-Plugins

網元AMIではNginx のリバースプロキシキャッシュを利用することによりフロント側での表示を高速化する仕組みを取っています。

参照:パフォーマンス & 特長

しかし、リバースプロキシキャッシュを制御しないと記事を投稿したりコメントが付いてもキャッシュが残って反映されない場合があります。
このキャッシュを WordPress のダッシュボードからコントロールするのが「Nginx Cache Controller」です。
通常は「Nginx Cache Controller」を有効化の際にNginxの設定も必要ですが、網元AMI ではあらかじめこれらの設定が組み込まれています。

使い方

プラグインを有効化後「Nginx Cache」メニューよりキャッシュ設定画面を開きます。

キャッシュの有効期間はすべてのページにおいてデフォルトで 86400 sec(秒)=24時間となっていますので適宜変更してください。
キャッシュ削除の設定の「キャッシュ削除の有効化」で「Yes」を選択します。「No」の場合は自動でキャッシュが削除されません。

Nginx-Cache1

「キャッシュ削除の有効化」を「Yes」にすると、詳細な設定を行えます。

「Nginx リバースプロキシ設定」は網元AMIの場合変更しなくてOKです。
「自動削除のフック」や「メタタグ “Last Modified” を追加」はご利用に合わせて適宜変更してください。

Nginx-Cache2

最後に「保存」します。

WP-CLI で操作

「Nginx Cache Controller」は前回ご紹介した WP-CLI からも操作できます。
※網元AMI の場合 ver 1.1以降でご利用いただけます。

すべてのリバースプロキシキャッシュを削除

$wp nginx flush

すべてのリバースプロキシキャッシュの一覧(リスト)

$wp nginx list

ヘルプを見る

$wp help nginx

モバイルテーマを別途設定する場合

WP Touchなどのプラグインを使いPC用と別にモバイルテーマを設定する場合には別途 Nginx 設定ファイルの変更が必要です。

参照:網元で WP Touch を使用する際の設定

また、網元AMI と「Nginx Cache Controller」を併用している場合、「Nginx Mobile Theme」プラグインを利用すると簡単な設定のみでスマートフォン用テーマの設定が可能です。

Nginx Mobile Theme とは

http://wordpress.org/plugins/nginx-mobile-theme/

Nginx-Mobile-Theme-Plugins

「Nginx Mobile Theme」はNginx リバースプロキシ環境下でユーザーエージェントによってモバイル用テーマを切り替えるためのプラグインです。
記事の保存時やコメントの投稿時などのタイミングで、モバイル用・PC用それぞれのキャッシュを削除します。
また、モバイル用に指定したいテーマは wp-content/themes 以下にあるテーマをテーマカスタマイザーで指定できます。
つまり、PC用のテーマを親とした子テーマでモバイルテーマを作成することが出来ます。

このプラグインを網元AMI 環境下で使用する場合は、「Nginx Cache Controller」の有効化の他に Nginx の設定ファイルを2カ所書き換える必要があります。

まずは /etc/nginx/conf.d/default.conf または、/etc/nginx/conf.d/example.com.conf ( example.com は、バーチャルドメイン名です ) の17行目をコメントアウトを削除し、ユーザーエージェントを判定するための設定を追加します。

修正前:

#include /etc/nginx/mobile-detect;

修正後:

include /etc/nginx/mobile-detect;

次に /etc/nginx/nginx.conf に以下のように行を追加し、リバースプロキシから WordPress に対して判定結果を送信する設定を追加します。

修正前:

proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_set_header  Accept-Encoding    "";

修正後:

proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_set_header  Accept-Encoding    "";
proxy_set_header  X-UA-Detect        $mobile; # この行を追加

※ wp-config.php にも設定を追加する必要がありますが、網元AMI の場合は対応済みです。

書き換えが終わったら、設定を反映させるために # service nginx restart で Nginx を再起動し、Nginxのキャシュも削除しましょう。

以上の設定が終わったら、テーマ>カスタマイズに「Mobile Theme」が追加され、スマートフォン用のテーマを設定できます。

Nginx-Mobile-Theme-Plugins2

参照:Nginx Mobile Theme – Nginxリバースプロキシ下で動作するモバイル用のテーマ切り替えプラグイン | firegoby


網元AMI + WordPress でリバースプロキシをフル活用してキャッシュによる表示の高速化を行うのであれば「Nginx Cache Controller」を有効化しておきましょう。