新規投稿を反映させる為、WordPressでのnginxキャッシュをblogと別に設定する
2 min read
こんにちは、無能です。
当サイトはCloudflareを使わずに同じような仕組みを自前で構築してキャッシュさせています。
この方が全部かゆいところも全部自分で管理出来てしまうのと、やっぱりなんでも自分でやっていたほうが楽しいですね!
以下の設定を適応させるために、WordPressの設定から当ブログの投稿パーマリンクに/blog/を挟むことにしました。
なお、一緒にリバースプロキシを設定している構文なので必要か必要じゃないかの取捨選択はしっかり行ってくださいね。
nginxでのキャッシュ設定
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $bypass $do_not_cache;
proxy_no_cache $do_not_cache;
proxy_redirect off;
proxy_cache_revalidate on;
proxy_ignore_headers Cache-Control Expires;
proxy_hide_header Cache-Control;
proxy_hide_header Pragma;
add_header Content-Security-Policy upgrade-insecure-requests;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache your_cache1;
proxy_pass http://192.168.10.101/;
}
location /blog/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $bypass $do_not_cache;
proxy_cache_bypass $http_cache_control $http_if_modified_since;
proxy_no_cache $do_not_cache;
proxy_redirect off;
proxy_cache_revalidate on;
proxy_ignore_headers Cache-Control Expires;
proxy_hide_header Cache-Control;
proxy_hide_header Pragma;
add_header Content-Security-Policy upgrade-insecure-requests;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache your_cache2;
proxy_pass http://192.168.10.101/blog/;
proxy_cache の値をそれぞれ変更することによってキャッシュの場所を変更し、blogのキャッシュを保持したままyour_cache1を削除することによって/blogのキャッシュを保持したまま新規投稿を反映させる事が可能になりました。
でも実際、proxy_cache_validで短期間をyour_cache1に設定して/blog/のyour_cache2を長期間保有させた方がいいのでは?
という考えもあるので、ここの調整は追々していこうかと思います。