Cloudflare 的內容分發網絡 (CDN) 是現代網站優化的核心武器,但許多網站所有者僅使用了其基本功能,完全沒有發揮其全部潛力。根據實際統計,正確設置的 Cloudflare CDN 可以將網站加載時間減少高達 50-70%,大幅提升用戶留存率和轉換率。本文將深入探討如何完全釋放 Cloudflare CDN 的強大性能,確保所有內容得到最佳緩存,並為您的訪客提供閃電般的體驗。

了解 Cloudflare CDN 的核心原理

Cloudflare CDN 本質上是一個內容分發網絡和反向代理雲提供商,擁有遍佈全球的伺服器網絡。當用戶訪問您的網站時,Cloudflare 會攔截請求並從最近的伺服器提供緩存內容,大幅減少延遲時間。

Cloudflare 的全球網絡涵蓋 335 個據點,能夠將內容盡可能靠近您的最終用戶 - 約 95% 的網絡連接人口都能在約 50 毫秒內得到響應。這種廣泛的全球網絡使 Cloudflare 能夠在保持最高性能和彈性的同時,以最大規模交付靜態和動態內容。

解決 Cloudflare 默認緩存的限制

很多網站管理員不知道的是,Cloudflare 默認的緩存行為有嚴格限制:

  • Cloudflare 僅根據文件擴展名緩存,而不是按 MIME 類型
  • 默認情況下不會緩存 HTML 或 JSON 文件
  • 許多網站管理員發現大部分資源被標記為「動態」,因此不被緩存

這就是為什麼許多用戶在使用 Cloudflare 時,發現大約只有 0.02% 的內容實際被 Cloudflare 緩存並服務。如果不進行適當設置,您實際上可能完全沒有利用到 CDN 的主要優勢。

節點選擇

  • 針對中國用戶,選擇最快的 Cloudflare 節點,例如移動(172.64.32.1/24,香港)、電信(104.16.160.1/24,洛杉磯)、聯通(108.162.236.1/24,美國)。
  • 可通過 Cloudflare Partner(如 BNXB,https://cdn.bnxb.com/)使用 CNAME 解析自定義節點。

啟用「Cache Everything」設置的關鍵步驟

要最大化 Cloudflare 的緩存潛力,必須啟用「Cache Everything」功能。這有兩種方法:

通過頁面規則設置

  1. 登入 Cloudflare 儀表板並選擇您的域名
  2. 點擊左側的「Rules」
  3. 選擇「Page Rules」
  4. 點擊「Create Page Rule」
  5. 在 URL 匹配模式中輸入:*yourdomain.com/*(替換為您的域名)
  6. 在設置中選擇「Cache Level」並將其設為「Cache Everything」
  7. 點擊「Save and Deploy Page Rule」

通過 Cache Rules 設置(推薦方法)

  1. 前往 Cloudflare 儀表板選擇您的域名
  2. 點擊「Caching」選項卡
  3. 選擇「Cache Rules」子頁面
  4. 創建新規則,條件設為「All incoming requests」
  5. 在「Then...」部分,將「Cache eligibility」設為「Eligible for cache」
  6. 將「Edge TTL」設為「Use cache-control header if present, bypass cache if not」
  7. 儲存設置

優化緩存控制頭部設置

為確保最佳緩存效果,您需要正確設置 Cache-Control 頭部並確保 Cloudflare 尊重這些頭部:

  1. 前往 Cloudflare 儀表板的「Caching」>「Configuration」
  2. 將「Browser Cache TTL」設為「Respect Existing Headers」
  3. 禁用「Always Online™」(如果已啟用)

在您的源伺服器上,應根據資源類型設置不同的緩存頭部:

資源類型 建議的 Cache-Control 頭部
靜態版本化資源(如CSS、JS) public, max-age=31536000, immutable
動態資源(如HTML頁面) cache-control: max-age=0,must-revalidate,public

這種設置可以確保靜態資源被長時間緩存,而動態內容始終保持最新。

啟用高級性能協議

Cloudflare 提供多種協議優化選項,可以顯著提升網站性能:

HTTP/2 和 HTTP/3 啟用步驟

  1. 登入 Cloudflare 儀表板
  2. 導航至「Speed」>「Optimization」
  3. 在「Protocol Optimization」部分,啟用以下選項:
    • HTTP/2 和 HTTP/3 (with QUIC)
    • HTTP/2 to Origin
    • 0-RTT Connection Resumption

這些協議優化可以減少延遲,提高資源利用率,並加快加載時間。特別是同時啟用 HTTP/2、HTTP/3 和 0-RTT Connection Resumption 的組合效果最佳。

內容優化設置

Cloudflare 提供多種內容優化工具,可以進一步加速網站:

關鍵內容優化選項

優化選項 功能 建議設置
Cloudflare Fonts 在 Cloudflare 伺服器上緩存常用網絡字體 開啟
Early Hints 向瀏覽器發送有關即將到來的資源的初步提示 開啟
Rocket Loader™ 優化 JavaScript 加載方式 開啟
Mirage 根據訪問者的設備和網絡狀況優化圖像加載 開啟
Minify 壓縮 HTML、CSS 和 JavaScript 開啟所有

這些優化設置相互配合,可以大幅提高網站加載速度,特別是在低速連接或移動設備上。

緩存大小限制和優化策略

了解 Cloudflare 對不同計劃的緩存限制也很重要:

各計劃的緩存限制

計劃類型 最大上傳大小 可緩存文件限制
Free 100 MB 512 MB
Pro 100 MB 512 MB
Business 200 MB 512 MB
Enterprise 500+ MB 5 GB(可請求增加)

對於超過限制的文件,可以通過分組請求或使用非代理 DNS 記錄上傳完整資源。

安全性與性能的平衡

Cloudflare 不僅提供速度優勢,還可增強網站安全性:

安全與性能並重的設置

  1. 設置速率限制規則防止攻擊,例如:
URL: /*
Action: Rate-limit
Requests: 100 per minute
  1. 限制源伺服器只允許來自 Cloudflare IP 範圍的流量
  2. 考慮使用 Cloudflare Tunnels 完全不暴露任何入站端口

監控與優化緩存效果

設置完成後,持續監控和優化緩存效果至關重要:

  1. 使用 Chrome 開發者工具檢查響應頭中的「cf-cache-status」。「HIT」表示資源已被緩存
  2. 考慮使用 Dr. Flare 等 Chrome 擴展分析網站,了解有多少內容來自 Cloudflare 緩存
  3. 定期檢查 Cloudflare 分析,了解緩存命中率和性能指標

高級緩存策略與最佳實踐

針對 WordPress 網站的特殊考慮

對於 WordPress 網站,Cloudflare 的全頁面緩存可以顯著提升性能:

  1. 使用 HTML/全頁面緩存使網站在源主機上更加負載無關
  2. 使用 Cloudflare 源證書實現端到端加密
  3. 為緩存頭部設置長期過期時間
  4. 使用 WordPress 外掛如 WP Super Cache 和 Autoptimize 優化靜態頁面和壓縮內容。

避免常見的緩存陷阱

  1. 確保不要在使用「cache everything」規則時覆蓋源瀏覽器緩存和邊緣緩存規則
  2. 避免緩存敏感區域,如管理面板(wp-admin)
  3. 注意域名分段時的通配符設置,*mydomain.com/**.mydomain.com/* 是不同的

通過實施這些策略和設置,您可以充分發揮 Cloudflare CDN 的潛力,確保所有適合緩存的內容都能得到有效緩存,並為您的用戶提供最佳的體驗。正確配置的 Cloudflare 不僅可以提高網站速度,還能減輕源伺服器負載,增強安全性,並為全球用戶提供一致快速的體驗。


How can I ensure that dynamic content is properly cached on Cloudflare

要確保動態內容在 Cloudflare 上得到適當的緩存,可以採取以下幾個關鍵步驟:

設置 Cache Everything 規則

  1. 登入 Cloudflare 儀表板,選擇您的域名
  2. 前往「Rules」>「Page Rules」
  3. 創建新規則,URL 匹配模式設為 *yourdomain.com/*
  4. 將「Cache Level」設為「Cache Everything」
  5. 儲存並部署規則

優化 Cache-Control 標頭

  1. 在 Cloudflare 儀表板中,將「Browser Cache TTL」設為「Respect Existing Headers」
  2. 在源伺服器上,根據資源類型設置適當的 Cache-Control 標頭:
    • 靜態資源: public, max-age=31536000, immutable
    • 動態內容: cache-control: max-age=0,must-revalidate,public

利用 Cloudflare Workers

使用 Cloudflare Workers 實現更精細的緩存控制:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  // 在此實現自定義緩存邏輯
  // 例如,根據請求參數或用戶狀態決定緩存策略
}

設置 Edge Cache TTL 頁面規則

  1. 在 Cloudflare 儀表板中創建新的頁面規則
  2. 為特定路徑(如 /posts/*)設置 Edge Cache TTL
  3. 這將允許 Cloudflare 緩存通常被視為「動態」的 JSON 響應

監控和優化

  1. 使用 Chrome 開發者工具檢查響應頭中的 cf-cache-status
  2. 尋找 HIT 狀態,表示內容已被緩存
  3. 如果看到 DYNAMIC,檢查並調整緩存規則

注意事項

  • 謹慎緩存敏感或個人化內容
  • 定期檢查緩存效果並進行必要的調整
  • 考慮使用 Cloudflare 的 Cache Analytics 來深入了解緩存性能

通過實施這些策略,您可以顯著提高動態內容的緩存效率,減少源伺服器負載,並為用戶提供更快的訪問體驗。記住,緩存策略需要根據您的具體需求和內容類型進行微調和優化。


What tools can help me analyze caching issues on Cloudflare

以下幾種工具可以幫助您分析 Cloudflare 上的緩存問題:

Cloudflare 內建工具

  1. Cache Analytics
    • 提供深入的緩存性能分析
    • 顯示哪些資源未被緩存、已過期或不適合緩存
    • 可按主機名過濾數據,查看緩存未命中的熱門 URL
    • 支持切換請求數和數據傳輸量視圖
  2. 開發者控制台 (F12)
    • 在瀏覽器的網絡選項卡中檢查每個文件的 Cache-Control 和 CF-Cache-Status 標頭

第三方工具

  1. CF-Cache-Status 工具
    • 輸入 URL 即可測試網站是否正確配置 Cloudflare
    • 顯示文件的緩存狀態(Hit、Miss、Bypass 等)
  2. Dr. Flare Chrome 擴展
    • 提供豐富的圖表和數據分析
    • 顯示緩存、未緩存和代理的文件數量
    • 詳細展示每個文件的請求時間、請求標頭和響應標頭
  3. GTmetrix
    • 在「Waterfall」選項卡中檢查資源的 cf-cache-status 標頭

緩存設置的最佳案例

緩存是優化 CDN 性能的核心。以下是具體設置建議:

  • 默認緩存行為:Cloudflare 默認不緩存 HTML 或 JSON,但通過 Page Rules 可強制緩存。研究顯示,設置適當的緩存規則可將頁面載入時間縮短 20%-30%。
  • Page Rules 配置:創建規則以緩存靜態內容。例如,對於 WordPress 網站,可設置:
    • example.com/images/*:緩存一切,Edge Cache TTL 設置為 1 個月。
    • example.com/wp-admin/*:繞過緩存,防止後台頁面被緩存。
  • Edge Cache TTL:建議靜態資產(如圖片、CSS、JS)設置較長 TTL(如 7 天至 1 個月),動態內容設置較短或繞過。
  • Browser Cache TTL:瀏覽器緩存時長建議為 1 小時至 1 個月,靜態內容可設為更長,以減少重複請求。
  • 緩存清除:當內容更新后,需通過 Cloudflare 後台清除緩存(Purge Everything 或指定文件),確保訪客獲取最新版本。

針對中國用戶的節點優化

中國用戶的網路環境複雜,Cloudflare 的海外節點可能導致較高延遲。以下優化策略特別針對中國用戶:

  • 使用本地 CDN 的建議:研究表明,對於中國境內網站,優先考慮本地 CDN 服務如阿里雲騰訊雲 ,因其節點更貼近用戶。
  • Cloudflare Partner 的 CNAME 解析:通過合作夥伴(如 BNXB)免費使用 CNAME 解析,可自定義節點,優化中國訪問速度。
  • DNS 解析與 D 監控:使用 DNSPod ([註冊連結未提供]) 作為 DNS 服務,並啟用 D 監控功能,自動根據網路狀況切換節點。D 監控通過 HTTP 請求檢測,403 錯誤警告,500+ 錯誤觸發切換。

選擇最快節點:測試並選擇適合中國用戶的節點,例如:

營運商 IP 範圍 位置
移動 172.64.32.1/24 香港
電信 104.16.160.1/24 洛杉磯
聯通 108.162.236.1/24 美國

性能優化與工具

除了緩存,性能優化還包括協議升級和外掛支持:

額外考慮

  • 注意 Cloudflare 節點主要在海外,中國用戶訪問可能不如國內 CDN(如阿里雲、騰訊雲)快,建議優先考慮本地服務。
  • 定期清除緩存以確保更新內容生效。

最佳實踐

  • 使用這些工具時,請先清除 WordPress 緩存插件和 Cloudflare 緩存
  • 結合使用多種工具以獲得全面的分析結果
  • 定期檢查緩存效果並進行必要的調整

通過使用這些工具,您可以深入了解 Cloudflare 的緩存性能,並找出需要優化的地方,從而提高網站速度和減少源伺服器負載。

Share this post
Ewan Mak

I'm a Full Stack Developer with expertise in building modern web applications that fast, secure, and scalable. Crafting seamless user experiences with a passion for headless CMS, Vercel and Cloudflare

Loading...