この前リリースした網元ですが、そのまま使うと Ktai Style とか WP Touch とかを使ってる場合、リバースプロキシキャッシュを効かせると、うまいこと動きません。
おでこんにも突っ込まれました。
@wokamoto ありがとう、帰ったらやってみますー。モバイル用の表示してたものもPC表示になったりとか謎な挙動もあるので、テスト運用してます!
— odyssey / おでっせい (@odyssey) July 31, 2012
ってわけで、その辺もろもろを解消するための設定方法を書いておきますね。
モバイル用に違うキーでキャッシュをさせる方法
網元で自動設定される nginx の設定ファイルを修正してください。
conf.d/default.conf または、conf.d/example.com.conf ( example.com は、バーチャルドメイン名です ) を修正します。
server { listen 80 default; server_name _; root /var/www/vhosts/$host; index index.html index.htm; charset utf-8; access_log /var/log/nginx/$host.access.log main; error_log /var/log/nginx/$host.error.log; include /etc/nginx/drop; rewrite /wp-admin$ $scheme://$host$uri/ permanent; #rewrite ^(.*)(index|home|default)\.html? $1 permanent; set $mobile ''; #include /etc/nginx/mobile-detect; :
#include /etc/nginx/mobile-detect;
の行頭の # を取ってください。
その後、 # service nginx restart
で Nginx を再起動すればおっけ。
Nginx Cache Controller でモバイル用のキャッシュも削除する
テーマの functions.php とかに以下のコードを追加してください。
<?php add_filter('nginxchampuru_get_cache', 'nginxchampuru_get_cache', 10, 2); function nginxchampuru_get_cache($key, $url = null) { global $nginxchampuru; if (!$url) { $url = $nginxchampuru->get_the_url(); } $keys = array( $key, $nginxchampuru->get_cache_key($url.'@ktai'), $nginxchampuru->get_cache_key($url.'@smartphone'), ); if ($key !== $nginxchampuru->get_cache_key($url)) { $keys[] = $nginxchampuru->get_cache_key($url); } return $nginxchampuru->get_cache_file($keys); }
WordPress のマルチサイトインストールしたい
網元で自動設定される nginx の設定ファイルを修正してください。
conf.d/default.backend.conf または、conf.d/example.com.backend.conf ( example.com は、バーチャルドメイン名です ) を修正します。
server { listen unix:/var/run/nginx-backend.sock default; server_name _; root /var/www/vhosts/$host; index index.php index.html index.htm; access_log /var/log/nginx/$host.backend.access.log backend; keepalive_timeout 25; port_in_redirect off; gzip off; gzip_vary off; include /etc/nginx/wp-singlesite; #include /etc/nginx/wp-multisite-subdir; }
15行目の include /etc/nginx/wp-singlesite;
の行頭に # を追加して、16行目の #include /etc/nginx/wp-multisite-subdir;
の行頭の # を消してください。
その後、 # service nginx restart
で Nginx を再起動すればおっけ。
memcached 使いたいんだけど…
memcached と php 用のライブラリは、インストール済みです。
ただし、自動起動するようには設定されてないので SSH 接続して以下のコマンドで設定してやってください。
# service memcached start # chkconfig memcached on
あとは、Memcached Object Cache とか入れてください。
ピンバック: 高速にWordPressを動作させる網元を使うべくAWSにブログを移転しました。その手順を備忘録として残します。 - YATのBlog
ピンバック: nginxの設定ファイルを書きなおした - UKLab
ピンバック: AWS+網元でWordPressのマルチサイトを移転しました。 - Diary, WordPressコア機能強化カスタマイズ | Lovelog+*