2. CDN:你的「全球快遞網路」
2.1 需要 CDN 的動機
想像你開了一家網路商店,伺服器放在深圳。現在有個使用者在台北存取你的圖片:
沒有 CDN:請求從台北→新竹→台中→高雄→屏東→深圳,跨越 2000 多公里,來回就是 4000 多公里。光網路傳輸就要幾十毫秒,遇到網路壅塞更慘。
有了 CDN:請求從台北直接到台北的 CDN 節點(可能就在台北中華電信機房),距離從 2000 公里變成 20 公里,延遲從 50ms 變成 5ms。
這就是 CDN 的核心價值:讓內容離使用者更近。
2.2 CDN 的核心架構
邊緣節點:離使用者最近的「快遞站」
邊緣節點是 CDN 網路中最接近使用者的層級,通常部署在:
- 電信業者機房(中華電信/遠傳/台灣大哥大)
- 大城市網際網路交換中心
- 重要交通樞紐
中國主要 CDN 節點分佈:
- 一線城市:北京、上海、廣州、深圳
- 二線城市:杭州、南京、成都、武漢、西安
- 海外:香港、新加坡、東京、矽谷、法蘭克福
來源站:內容的「總倉庫」
來源站是 CDN 回源獲取內容的地方,可以是:
- 物件儲存(OSS/COS/S3)
- 自建伺服器(ECS/物理機)
- 負載平衡器(SLB/CLB)
關鍵設定:
- 回源 HOST:CDN 節點存取來源站時使用的網域名稱/IP
- 回源協定:HTTP 還是 HTTPS
- 回源埠:80、443 還是自訂埠
中間層節點:「區域分撥中心」
在邊緣節點和來源站之間,CDN 通常還有一層或多層中間節點:
- 匯聚節點:聚合多個邊緣節點的回源請求,減少來源站壓力
- 區域中心:負責一個大區的內容分發和排程
這種分層架構的好處:
- 降低來源站壓力:1000 個邊緣節點的請求,可能只需要向來源站發起 10 次
- 提高命中率:熱門內容在中間層就被攔截,不需要回源
- 故障隔離:某條鏈路出問題,可以自動切換到其他路徑
2.3 CDN 加速的完整流程
讓我們追蹤一次真實的使用者請求:
Step 1:DNS 解析(智慧排程)
使用者輸入:cdn.example.com/image.jpg
↓
DNS 伺服器回傳:台北中華電信 CDN 節點 IP(1.2.3.4)這裡的關鍵是智慧 DNS:根據使用者的電信業者、地理位置、節點負載,回傳最優的 CDN 節點 IP。
Step 2:邊緣節點查詢(快取命中?)
請求到達台北中華電信 CDN 節點(1.2.3.4)
↓
節點檢查本地快取:
├─ 命中?直接回傳內容 ✓
└─ 未命中?繼續下一步Step 3:回源獲取(層層向上)
邊緣節點未命中
↓
向父節點(如:台灣區域中心)請求
├─ 父節點命中?回傳內容
└─ 父節點未命中?繼續向上
↓
向來源站請求
↓
來源站回傳內容Step 4:快取並回傳(下次更快)
內容沿鏈路回傳
↓
每層節點都快取一份
↓
最終到達使用者這樣,下次有使用者請求同一個檔案時,就能直接從邊緣節點回傳,實現「秒開」。