毎日モザイク

White Room Layout Works

2014-04-10T13:13:28+09:00 [Thu]

んぎなんとかでreverse proxy 2

記事作成時にプレビューが効かないのは、WordPress Nginx proxy cache integratorにわかりやすい設定例があって、それを、nginx公式リファレンスを見ながら書き直したら、おおむね予定通りになりました。

ここは、/以下にいきなりwordpressを置かず、他のディレクトリもある、wordpress推奨(ってわけでもなさそうだけど、プラグインなんかに、その仕様で決め打ちしてあるものがある)の構成ではなく、キャッシュさせたくないディレクトリもあるので、スルーの設定がいまいち分らなかったのですが、公式のlocationの項目を見ると、

  • location = / — /だけにヒットする。
  • location / —/以下ぜんぶが対象
  • 以上が特別なもので、以下、

  • location ~* —大文字小文字を区別しない正規表現
  • location ~ —大文字小文字を区別する正規表現

で、ファイルやディレクトリを指定すれば良いようです。

proxy_cacheなんたらを書かず、proxy_passだけ書けばバックエンドに飛ばされます。

##backendのapache2を指定
upstream my_backend {
    server 127.0.0.1:xxxx weight=1 fail_timeout=10s; --ここはバックエンドが一つなのでweight,fail_timeoutは飾り
}
server {
    #################
    # その他、必要な設定
    #################

    #以下、除外設定
    #/が更新を拾ってくるphpなので、常時バックエンドから
    location = / {
        proxy_pass   http://my_backend;
    }

    #wordpress以外のページは常時バックエンドから
    location [regex] {
        proxy_pass   http://my_backend;
    }
}

これで、除外設定もぼちぼち。

あと、edit_postのフックでキャッシュ全消しは企画倒れっぽい……。

edit_postのフックに、下書きとして保存も、自動バックアップも含まれるので、自動バックアップが動くたびにキャッシュが消えるw

さすがにこのままでは消しすぎ……。

publish_post(投稿を公開)、publish_page(固定ページを公開)、publish_to_draft(投稿を下書きに戻す)、edit_comment(コメント追加削除)にフックを掛けることに