為了反映新文章,將WordPress中的nginx快取與blog分開設定
大家好,我是無能。
本網站沒有使用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 長期保留,這樣不是更好嗎?
也有這種想法,所以這部分的調整我會再慢慢進行。