內容傳遞網路

最後更新: 2025-07-10 20:16:44 +0800 +0800
tags: Cdn | Dns | Networking
原文以英文撰寫。您正在閱讀AI翻譯版本。

內容傳遞網路(CDN)會從接近使用者的邊緣位置提供內容。視供應商而定,它可以快取靜態資產、代理動態流量、 終止 TLS、過濾攻擊並最佳化連線。來源站仍是具權威性的應用程式;CDN 則是具有明確快取與路由原則的中介者。

將網域連線至 CDN #

操作人員會設定來源站,例如 https://origin.example.net,並為 www.example.com 建立 CDN 分發。 供應商會提供類似 example.cdnprovider.net 的主機名稱;接著操作人員建立 DNS 記錄,通常是將 www.example.com 指向該主機的 CNAME:

text
www.example.com.  CNAME  example.cdnprovider.net.

在邊緣節點,CDN 會使用請求的主機名稱識別分發,並將適當的 Host 標頭轉送至來源站。許多網站可以共用 邊緣 IP 位址,因為 TLS SNI 與 HTTP 的 Host 標頭會識別預定的虛擬主機。

DNS apex 通常不能包含 CNAME,因為它也必須保存 SOA 與 NS 記錄。供應商會透過 A/AAAA 別名功能、支援時的 ANAME/ALIAS 記錄,或委派 DNS 來處理。確切行為取決於 DNS 供應商。

有意識地選擇快取行為 #

快取鍵通常包含主機名稱、路徑、選定的查詢參數,以及選定的請求標頭或 Cookie。包含每個 Cookie 會破壞快取效率; 省略會改變回應的值,則可能將一名使用者的內容洩漏給另一名使用者。

設定明確的 HTTP 快取指令。具版本的資產通常可以長時間快取:

text
Cache-Control: public, max-age=31536000, immutable

HTML 與個人化回應通常需要較短的存留時間、重新驗證,或 private/no-store。清除操作適合處理特殊修正, 但內容定址檔名與可預測的 TTL 是更可靠的日常失效機制。

TLS、來源站與安全性 #

CDN 憑證必須涵蓋面向訪客的主機名稱。也要使用 HTTPS 讓 CDN 連線至來源站、驗證來源站憑證,並限制來源站存取, 使攻擊者無法繞過邊緣控制。視平台而定,這可能代表對公開的 CDN 輸出範圍設定防火牆、使用雙向 TLS,或要求簽署的 來源站請求。

不要依賴用戶端提供的轉送標頭進行存取決策。設定 CDN 以建立受信任標頭,並讓來源站只接受來自 CDN 的這些標頭。 上線前檢視已驗證路徑的快取規則、清除授權、來源站逾時與錯誤快取。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)