んぎなんとかで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(コメント追加削除)にフックを掛けることに>