Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

CDN 緩存策略配置核心原則與最佳實踐

編輯:Linux 教學

核心原則:分類分級,精準控制

緩存策略的本質是「在效能與資料新鮮度之間找到平衡點」。錯誤的配置會導致用戶看到舊內容,或是增加源站壓力。以下依資源特性分類說明配置策略。

靜態資源緩存策略

極少更新的靜態資源(圖片、字體、媒體檔、應用安裝包)

  • 建議緩存時間:≥ 30 天(建議 1 年)
  • Cache-Control:public, max-age=31536000, immutable
  • 策略說明:此類資源檔名通常包含雜湊值(如 logo.a1b2c3.png),內容變更即檔名變更,可安全長期緩存
  • 適用場景:Logo、圖示、Web Fonts、產品圖片、APK/IPA 下載檔

頻繁更新的靜態資源(JS、CSS、JSON 設定檔)

  • 建議緩存時間:1 天 ~ 7 天(視業務迭代頻率)
  • Cache-Control:public, max-age=86400, must-revalidate
  • 關鍵技巧:採用「檔名指紋」機制(app.v20240115.js),配合長緩存 + HTML 引用更新,實現「即時生效」與「長期緩存」並存
  • 避坑指南:勿對無指紋的 JS/CSS 設定長緩存,否則部署後用戶需強制刷新(Ctrl+F5)才能生效

動態資源緩存策略

動態資源指:PHP、JSP、ASP、ASPX、Node.js、Go 等後端渲染頁面,或 API 介面回應。

核心原則:預設不緩存,精準放行

Cache-Control: no-cache, private, max-age=0
# 或
Cache-Control: no-store, private, must-revalidate
  • no-cache:每次請求必須向源站驗證(ETag/Last-Modified),資料未變更時返回 304
  • private:僅允許瀏覽器緩存,禁止 CDN/Proxy 緩存(含用戶隱私、Session 資訊)
  • max-age=0:強制每次重新驗證
  • no-store:完全禁止任何層級緩存(適用於極高機密資料)

典型動態資源場景

場景特徵建議策略
用戶個人中心頁面含 Cookie/Session,個人化程度高no-cache, private
交易/支付頁面安全性最高,絕對不可緩存no-store, private
即時資料 API (股價、聊天)秒級時效性要求no-cache, must-revalidate
搜尋結果頁可接受分鐘級延遲public, max-age=60, stale-while-revalidate=30

架構層面建議

如果加速域名下動態資源佔比超過 50%,強烈建議拆分域名:

  • 靜態資源走 CDN 加速域名(static.example.com)
  • 動態資源走主域名直連源站(api.example.com 或 www.example.com)

優勢:避免動態請求污染 CDN 緩存、減少不必要的回源、提升動態請求響應速度、便於分別配置 WAF/限流策略。

進階緩存控制頭部

  • ETag / If-None-Match:內容指紋驗證,精準判斷資源是否變更
  • Last-Modified / If-Modified-Since:時間戳驗證,適用於大檔案
  • Vary: Accept-Encoding:區分 gzip/br 壓縮版本,避免瀏覽器解壓失敗
  • stale-while-revalidate:允許在後台更新時服務過期內容,提升感知效能
  • stale-if-error:源站故障時繼續服務過期內容,增強可用性

驗證與除錯工具

# 檢查響應頭
curl -I https://cdn.example.com/assets/app.js

# 檢查緩存命中狀態(需 CDN 支援)
curl -I -H "Accept-Encoding: gzip" https://cdn.example.com/assets/app.js | grep -i "x-cache\|cf-cache-status\|age"
Copyright © Windows教程網 All Rights Reserved