动态

详情 返回 返回

WordPress安全加速:Cloudflare + Nginx緩存優化方案 - 动态 详情

轉載地址: WordPress安全加速:Cloudflare + Nginx緩存優化方案

前言:數字時代的“驛站”與“快馬”

在古代,驛站系統讓信息傳遞快馬加鞭,而今天,Cloudflare與Nginx的緩存優化,正是現代網站的“數字驛站”。本教程將帶您配置靜態資源長期緩存、動態頁面智能緩存,以及敏感路徑保護,讓您的WordPress網站如離弦之箭,飛速加載。

適用環境

✔ 域名託管於Cloudflare(橙色雲代理開啓)\
✔ WordPress運行在OpenResty/Nginx(如1Panel面板)\
✔ 已準備好服務器終端訪問權限


第一步:Nginx緩存配置

目標:打造“靜態資源保險庫”——讓CSS、JS、圖片等靜態資源長期緩存,減少重複請求。

1. 編輯Nginx配置文件

在1Panel面板中,進入 網站 → 選擇站點 → 配置文件(如nginx.conf) ,在server塊內添加以下規則:

# 添加靜態資源(CSS/JS/圖片等)——365天緩存
location ~* .(css|js|png|jpg|jpeg|gif|ico|svg|webp|woff2)$ {
    expires 365d;
    add_header Cache-Control "public, immutable";
    access_log off;
    # 隱藏干擾頭
    proxy_hide_header Set-Cookie;
    proxy_hide_header Pragma;
}

# 添加動態頁面(首頁/分類頁/標籤頁)——10分鐘緩存
location ~ ^/$|/page/|/category/|/tag/ {
    add_header Cache-Control "public, max-age=600, stale-while-revalidate=300";
}

# 添加禁止緩存後台和敏感路徑(如/wp-admin/)
location ~* ^/(wp-admin|wp-login|xmlrpc.php|my-account) {
    add_header Cache-Control "no-cache, no-store, must-revalidate";
    expires 0;
}

# PHP請求處理(保持原有配置,僅添加緩存頭)
location ~ [^/].php(/|$) {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi-php.conf;
    include fastcgi_params;
    # 添加緩存頭-動態緩存控制
    add_header Cache-Control "public, max-age=600";
}

2. 重載Nginx配置

openresty -t && openresty -s reload

效果:靜態資源就像“圖書館的藏書”,適合長期緩存;動態頁面就像“每日更新的報紙”,適合短時更新;後台路徑則完全繞過緩存,確保安全。


第二步:Cloudflare緩存規則

Cloudflare的Cache Rules如同智能的“流量調度員”,讓緩存策略更靈活,避免一刀切。

通過規則→概述→Cache Rules→創建規則,進入緩存規則創建界面
在這裏插入圖片描述

1. 靜態資源緩存(1年)

  • 規則名稱:Cache Static Assets
  • 匹配條件:

<!---->

  (http.request.uri.path contains "/wp-content/") 
  and 
  (http.request.uri.path ext in ("css" "js" "png" "jpg" "webp"))
  • 操作:

    • 邊緣TTL:如果存在,使用緩存控制標頭,如果不存在,使用 Cloudflare 的默認 TTL 緩存請求來獲取響應狀態
      在這裏插入圖片描述
      在這裏插入圖片描述

      2. 動態頁面緩存(10分鐘)

  • 規則名稱:Cache Dynamic Pages
  • 匹配條件:

<!---->

  (http.request.uri.path in {"/" "/category/*" "/tag/*"})
  • 操作:

    • 邊緣TTL:10分鐘

在這裏插入圖片描述

3. 繞過敏感路徑(如後台)

  • 規則名稱:Bypass Admin
  • 匹配條件:

<!---->

  (http.request.uri.path contains "/wp-admin/") 
  or 
  (http.cookie contains "wordpress_logged_in")
  • 操作:繞過緩存
    在這裏插入圖片描述

第三步:驗證緩存狀態

1. 靜態資源驗證

curl -I https://yourDomain.com/wp-content/themes/YourTheme/style.css

預期輸出:

HTTP/2 200 
CF-Cache-Status: HIT
Cache-Control: public, max-age=31536000, immutable

2. 動態頁面驗證

curl -I https://yourDomain.com/

可能結果:

  • 已緩存:CF-Cache-Status: HIT
  • 未緩存:CF-Cache-Status: DYNAMIC

3. 後台路徑驗證

curl -I https://yourDomain.com/wp-admin/ --cookie "wordpress_logged_in=123"

預期輸出:

CF-Cache-Status: BYPASS
Cache-Control: no-store

第四步:故障排查

  • 問題:CF-Cache-Status: DYNAMIC\
    解決:檢查Cache Rules是否匹配目標路徑
  • 問題:CF-Cache-Status: BYPASS\
    解決:確認請求未攜帶Cookie或訪問敏感路徑
  • 問題:緩存未更新\
    解決:手動清除Cloudflare緩存或修改文件名
    在這裏插入圖片描述

結語:速度與安全的平衡

✅ 靜態資源:1年緩存,減少90%請求\
✅ 動態頁面:10分鐘緩存,平衡實時性與速度\
✅ 後台路徑:完全繞過緩存,確保安全

在這裏插入圖片描述

user avatar TheFutureIsNow 头像 toopoo 头像 Z-HarOld 头像 yangy5hqv 头像 zingdev 头像 duokeli 头像 aresn 头像 kk_64ec9e6b37cb5 头像 guaguokedeputaojiu 头像 abelethan 头像 jiavan 头像
点赞 11 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.