同一阿里雲帳號下多個 CDN 加速網域名稱預設擁有獨立緩衝空間,多個網域名稱獨立緩衝會導致來源站點被重複回源。為多個網域名稱配置共用快取,可使多個網域名稱在CDN節點共用緩衝資源,公用資源只需從來源站點下載一次,後續訪問直接從共用快取中擷取資源,從而提升快取命中率、減少回源。
業務情境
同一帳號下存在多個 CDN 加速網域名稱,且來源站點提供大量相同資源時,即使訪問不同網域名稱但請求相同檔案,節點也會分別緩衝,導致來源站點被重複請求。配置共用快取可將多個網域名稱的緩衝空間合并,資源只需回源下載一次。
情境類型 | 說明 | 樣本 |
適用情境 | 多網域名稱共用靜態資源 | 多個網域名稱引用相同的 JS/CSS 架構或圖片庫 |
同一來源站點,多個入口 | 不同網域名稱指向同一來源站點,提供相同的靜態資源 | |
不適用情境 | 網域名稱間資源完全不同 | 各網域名稱提供獨立內容,無公用資源可複用 |
需要獨立緩衝策略 | 各網域名稱需單獨管理緩衝到期時間和回源規則 |
工作原理
配置共用快取後,CDN 使用 rewrite_host 功能函數:在查詢和產生 CacheKey 時,用 share_host 參數指定的目標網域名稱替換當前加速網域名稱,使多個共用同一目標的網域名稱能命中同一份緩衝條目。該配置不修改回源請求的 Host 頭。各網域名稱仍按自己的配置回源,來源站點收到的 Host 仍是各自的加速網域名稱。
未配置共用快取
使用者訪問
a.example.com/image.png,圖片被緩衝到a.example.com的緩衝空間。使用者訪問
b.example.com/image.png,即使圖片已在a.example.com的緩衝空間中存在,CDN 仍會從來源站點重新下載並緩衝到b.example.com的緩衝空間。
此時每個網域名稱擁有獨立的緩衝空間,即使資源實際上相同,也會產生額外的回源請求。
已配置共用快取
使用者訪問
a.example.com/image.png,圖片被緩衝到共用快取空間。使用者訪問
b.example.com/image.png,CDN 識別到資源相同,直接從共用快取中擷取,無需回源。
回源地址相同
設定共用快取後,兩個網域名稱的回源地址相同(例如均為 origin.example.com)時,可合并緩衝空間,進一步提升緩衝利用率。
回源地址不同
設定共用快取後,兩個網域名稱的回源地址不同(例如 origin-a.example.com 和 origin-b.example.com)時,若資源的 URL 路徑完全相同,產生 CacheKey 時加速網域名稱會被替換為共用網域名稱,即使實際回源地址不同,仍可返回相同的緩衝內容。
功能限制
配置共用快取前,請確認滿足以下條件:
同帳號限制:只能選擇同一阿里雲帳號的加速網域名稱。跨帳號網域名稱無法配置。
網域名稱狀態要求:只能選擇處於啟用(線上)狀態的網域名稱。已停用或未啟用的網域名稱不會出現在候選列表中。
數量上限:共用快取僅支援選擇一個目標網域名稱,不支援同時配置多個共用目標。候選網域名稱列表最多展示 500 個網域名稱。
資源群組隔離:如果當前網域名稱屬於特定資源群組,候選網域名稱列表將受資源群組過濾。
網域名稱刪除保護:當網域名稱 A 的共用快取對象設定為網域名稱 B 時,系統禁止刪除網域名稱 B。刪除網域名稱 B 會影響其他共用快取網域名稱的命中率。需先在網域名稱 A 上刪除或修改共用快取配置後,才能刪除網域名稱 B。
操作步驟
配置共用快取
操作前請確認:阿里雲帳號具有 CDN 控制台操作許可權,目標網域名稱已添加並處於啟用狀態。
登入 CDN控制台。
在左側導覽列中,單擊域名管理。
在網域名稱列表中,單擊目標加速網域名稱,進入該網域名稱的詳情頁。
在網域名稱詳情頁左側導覽列中,單擊缓存配置。
在緩衝配置頁面,單擊共用快取頁簽。
單擊修改配置,開啟彈窗,從下拉式清單選擇一個目標加速網域名稱。
下拉式清單僅展示當前帳號下處於启用 狀態的加速網域名稱,可通過輸入框進行模糊搜尋。列表最多展示 500 個網域名稱,且自動排除當前正在操作的網域名稱本身。
選擇目標網域名稱後,單擊确定儲存配置。
配置成功後,頁面共用快取列表中將顯示已配置的目標網域名稱。
驗證配置
在共用快取頁面查看是否顯示已配置的目標網域名稱。
對比配置前後不同網域名稱對相同資源的快取命中率,確認共用快取已生效。可檢查 CDN 日誌中
X-Cache回應標頭的命中情況。
修改共用快取配置
按照上述配置共用快取的步驟 1 至步驟 5 進入共用快取頁面,然後執行以下操作:
單擊修改配置。
開啟彈窗,選擇新的目標加速網域名稱,單擊確定儲存。
刪除共用快取配置
按照上述配置共用快取的步驟 1 至步驟 5 進入共用快取頁面,然後執行以下操作:
單擊刪除配置。
在確認對話方塊中,單擊確定。
刪除成功後,頁面顯示未設定。
成本與影響說明
成本說明:配置共用快取不會產生額外費用。快取命中率提升可減少回源流量,降低 CDN 使用成本。
開啟後的影響:
共用快取僅在查詢和產生 CacheKey 時使用共用網域名稱替換加速網域名稱,不影響加速網域名稱的回源地址和回源 HOST。
加速網域名稱進行帳號遷移後,該網域名稱仍可正常使用共用快取。
刪除後的影響:
刪除共用快取配置後,各網域名稱恢複獨立緩衝空間。已緩衝的資源在各自緩衝到期前仍然有效。
刪除設定了共用快取的加速網域名稱會影響其他共用快取網域名稱的命中率。需先在操作網域名稱上刪除或修改共用快取配置,才能刪除被共用的網域名稱。
常見問題
不設定共用快取,不同網域名稱能複用同一份緩衝嗎?
不能。CDN 的 CacheKey 中包含網域名稱資訊,不同網域名稱的請求被視為不同的資源。即使請求相同的來源站點檔案,CDN 節點也會分別緩衝。
配置後快取命中率為什麼沒有提升?
確認兩個網域名稱引用的資源 URL 路徑一致,並檢查緩衝到期時間配置是否合理。