NGINX FastCGI Cache 快取結合 WordPress 外掛 NGINX Helper 清除快取
設定 WordPress 的 NGINX FastCGI Cache 快取,並結合 WordPress 外掛 NGINX Helper 的快取清除條件搭配 NGINX ngx_cache_purge 模組,來達到新增發佈、修改文章/頁面等動作自動清除網頁頁面快取。
NGINX FastCGI Cache 快取
建立 FastCGI Cache 目錄
建立存放 FastCGI Cache 快取檔案的目錄,並將目錄擁有者設定為 NGINX 的執行帳戶 (如 nginx
):
mkdir /run/nginx-cache
chown nginx:nginx /run/nginx-cache
設定 FastCGI Cache
請參考 NGINX 設定有出現 FastCGI Cache 文字的設定。
X-Chche 網頁標頭快取狀態
由於有在【NGINX 共用設定檔 > 不快取條件】設定讓網頁加入快取表頭 X-Cache (可使用瀏覽器的【開發人員工具】查看),它會標示目前網頁的三種快取態狀如下:
- MISS:沒有使用快取,由 PHP 產生的網頁。
- HIT:使用快取。
- BYPASS:該網頁不適用快取 (符合被設定在不快取條件所排除的網址,例如 WordPress 為登入狀態 or 管理頁面)。
當第一次網站首頁被瀏覽時為 x-cache: MISS 沒使用快取:
當網站首頁已被瀏覽過,這時 NGINX 已有快取,因此為 x-cache: HIT 使用快取:
WordPress 目前為登入狀態時為 x-cache: BYPASS 不適用快取:
WordPress 外掛 NGINX Helper
至 WordPress 後台安裝外掛 NGINX Helper 並啟用:
NGINX Helper 設定,設定完後請點擊最下方的【Save All Changes】:
【快取清除方法】本文使用《使用 GET 要求以完成 PURGE/url》須透過 ngx_cache_purge 模組,安裝方式請參考二進位編譯 NGINX 清除快取動態模塊 ngx_cache_purge for CentOS 8
清除快取
當符合【快取清除條件】時,就會自動清除快取了:
如要手動清除全站快取,可點擊右上方的【清除全站快取】or 上方列表的【清除快取】:
在登入狀態時也可點擊上方列表的【清除目前頁面的快取】,僅會清除目前頁面快取:
參考
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.