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」功能。這有兩種方法:
通過頁面規則設置
- 登入 Cloudflare 儀表板並選擇您的域名
- 點擊左側的「Rules」
- 選擇「Page Rules」
- 點擊「Create Page Rule」
- 在 URL 匹配模式中輸入:
*yourdomain.com/*(替換為您的域名) - 在設置中選擇「Cache Level」並將其設為「Cache Everything」
- 點擊「Save and Deploy Page Rule」
通過 Cache Rules 設置(推薦方法)
- 前往 Cloudflare 儀表板選擇您的域名
- 點擊「Caching」選項卡
- 選擇「Cache Rules」子頁面
- 創建新規則,條件設為「All incoming requests」
- 在「Then...」部分,將「Cache eligibility」設為「Eligible for cache」
- 將「Edge TTL」設為「Use cache-control header if present, bypass cache if not」
- 儲存設置
優化緩存控制頭部設置
為確保最佳緩存效果,您需要正確設置 Cache-Control 頭部並確保 Cloudflare 尊重這些頭部:
- 前往 Cloudflare 儀表板的「Caching」>「Configuration」
- 將「Browser Cache TTL」設為「Respect Existing Headers」
- 禁用「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 啟用步驟
- 登入 Cloudflare 儀表板
- 導航至「Speed」>「Optimization」
- 在「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 不僅提供速度優勢,還可增強網站安全性:
安全與性能並重的設置
- 設置速率限制規則防止攻擊,例如:
URL: /*
Action: Rate-limit
Requests: 100 per minute
- 限制源伺服器只允許來自 Cloudflare IP 範圍的流量
- 考慮使用 Cloudflare Tunnels 完全不暴露任何入站端口
監控與優化緩存效果
設置完成後,持續監控和優化緩存效果至關重要:
- 使用 Chrome 開發者工具檢查響應頭中的「cf-cache-status」。「HIT」表示資源已被緩存
- 考慮使用 Dr. Flare 等 Chrome 擴展分析網站,了解有多少內容來自 Cloudflare 緩存
- 定期檢查 Cloudflare 分析,了解緩存命中率和性能指標
高級緩存策略與最佳實踐
針對 WordPress 網站的特殊考慮
對於 WordPress 網站,Cloudflare 的全頁面緩存可以顯著提升性能:
- 使用 HTML/全頁面緩存使網站在源主機上更加負載無關
- 使用 Cloudflare 源證書實現端到端加密
- 為緩存頭部設置長期過期時間
- 使用 WordPress 外掛如 WP Super Cache 和 Autoptimize 優化靜態頁面和壓縮內容。
避免常見的緩存陷阱
- 確保不要在使用「cache everything」規則時覆蓋源瀏覽器緩存和邊緣緩存規則
- 避免緩存敏感區域,如管理面板(wp-admin)
- 注意域名分段時的通配符設置,
*mydomain.com/*與*.mydomain.com/*是不同的
通過實施這些策略和設置,您可以充分發揮 Cloudflare CDN 的潛力,確保所有適合緩存的內容都能得到有效緩存,並為您的用戶提供最佳的體驗。正確配置的 Cloudflare 不僅可以提高網站速度,還能減輕源伺服器負載,增強安全性,並為全球用戶提供一致快速的體驗。
How can I ensure that dynamic content is properly cached on Cloudflare
要確保動態內容在 Cloudflare 上得到適當的緩存,可以採取以下幾個關鍵步驟:
設置 Cache Everything 規則
- 登入 Cloudflare 儀表板,選擇您的域名
- 前往「Rules」>「Page Rules」
- 創建新規則,URL 匹配模式設為
*yourdomain.com/* - 將「Cache Level」設為「Cache Everything」
- 儲存並部署規則
優化 Cache-Control 標頭
- 在 Cloudflare 儀表板中,將「Browser Cache TTL」設為「Respect Existing Headers」
- 在源伺服器上,根據資源類型設置適當的 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 頁面規則
- 在 Cloudflare 儀表板中創建新的頁面規則
- 為特定路徑(如
/posts/*)設置 Edge Cache TTL - 這將允許 Cloudflare 緩存通常被視為「動態」的 JSON 響應
監控和優化
- 使用 Chrome 開發者工具檢查響應頭中的
cf-cache-status - 尋找
HIT狀態,表示內容已被緩存 - 如果看到
DYNAMIC,檢查並調整緩存規則
注意事項
- 謹慎緩存敏感或個人化內容
- 定期檢查緩存效果並進行必要的調整
- 考慮使用 Cloudflare 的 Cache Analytics 來深入了解緩存性能
通過實施這些策略,您可以顯著提高動態內容的緩存效率,減少源伺服器負載,並為用戶提供更快的訪問體驗。記住,緩存策略需要根據您的具體需求和內容類型進行微調和優化。
What tools can help me analyze caching issues on Cloudflare
以下幾種工具可以幫助您分析 Cloudflare 上的緩存問題:
Cloudflare 內建工具
- Cache Analytics
- 提供深入的緩存性能分析
- 顯示哪些資源未被緩存、已過期或不適合緩存
- 可按主機名過濾數據,查看緩存未命中的熱門 URL
- 支持切換請求數和數據傳輸量視圖
- 開發者控制台 (F12)
- 在瀏覽器的網絡選項卡中檢查每個文件的 Cache-Control 和 CF-Cache-Status 標頭
第三方工具
- CF-Cache-Status 工具
- 輸入 URL 即可測試網站是否正確配置 Cloudflare
- 顯示文件的緩存狀態(Hit、Miss、Bypass 等)
- Dr. Flare Chrome 擴展
- 提供豐富的圖表和數據分析
- 顯示緩存、未緩存和代理的文件數量
- 詳細展示每個文件的請求時間、請求標頭和響應標頭
- 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 | 美國 |
性能優化與工具
除了緩存,性能優化還包括協議升級和外掛支持:
- 啟用 HTTP/2 和 HTTP/3:這些協議通過多路復用和更高效的連接管理提升速度,Cloudflare 控制面板中可啟用。
- Argo Smart Routing:對於付費用戶,可啟用 Argo 智能路由,優化全球流量路徑,減少延遲。
- WordPress 優化:安裝 WP Super Cache (https://wordpress.org/plugins/wp-super-cache/) 生成靜態頁面,Autoptimize (https://wordpress.org/plugins/autoptimize/) 壓縮 CSS/JS/HTML。啟用 Gzip 壓縮可進一步減少傳輸數據量。
- Cloudflare 官方外掛:安裝 Cloudflare 外掛 (https://wordpress.org/plugins/cloudflare/),管理緩存和分析性能。
額外考慮
- 注意 Cloudflare 節點主要在海外,中國用戶訪問可能不如國內 CDN(如阿里雲、騰訊雲)快,建議優先考慮本地服務。
- 定期清除緩存以確保更新內容生效。
最佳實踐
- 使用這些工具時,請先清除 WordPress 緩存插件和 Cloudflare 緩存
- 結合使用多種工具以獲得全面的分析結果
- 定期檢查緩存效果並進行必要的調整
通過使用這些工具,您可以深入了解 Cloudflare 的緩存性能,並找出需要優化的地方,從而提高網站速度和減少源伺服器負載。
