為了反映新文章,將WordPress中的nginx快取與blog分開設定

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是無能。

本網站沒有使用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 長期保留,這樣不是更好嗎?
也有這種想法,所以這部分的調整我會再慢慢進行。

Related Posts