全部產品
Search
文件中心

CDN:CDN加速OSS資源

更新時間:Sep 24, 2025

本文檔提供了一個完整的指南,用於配置阿里雲內容分發網路(CDN)以加速儲存在Object Storage Service服務(OSS)中的靜態資源。該方案通過將 OSS 作為 CDN 的來源站點,利用 CDN 的全球節點緩衝靜態內容,從而實現使用者就近訪問,顯著提升訪問速度並降低來源站點負載。

客戶價值

阿里雲OSS可提供低成本的儲存,CDN可以實現靜態資源加速分發。使用OSS作為CDN的來源站點,價值和優勢如下:

  • 使用者訪問網站資源,全部通過CDN,降低來源站點壓力。

  • 使用CDN流量,單價低於直接存取OSS產生的外網流出流量。

  • 從距離用戶端最近的CDN節點擷取資源,減少網路傳輸距離,降低訪問延遲。

技術架構

該方案的核心架構是利用 CDN 作為 OSS 的緩衝層。當使用者請求資源時,請求首先到達距離最近的 CDN 邊緣節點。

  • 快取命中:如果節點已緩衝該資源,則直接從緩衝中返回給使用者,實現最快響應。

  • 緩衝未命中:如果節點未緩衝該資源,它會向來源站點(即 OSS Bucket)發起請求,擷取資源,在將其返回給使用者的同時,在節點上建立一份快取複本,以備後續請求使用。

計費說明

將OSS作為CDN來源站點時,可能會產生CDN下行流量費用以及OSS流出到CDN流量費用。具體請參見CDN加速OSS計費說明

前提條件

實施步驟

步驟一:添加加速網域名稱並關聯OSS來源站點

此步驟在 CDN 控制台註冊加速網域名稱,並將其與作為來源站點的 OSS Bucket 關聯。

  1. 登入 CDN 控制台的網域名稱管理頁簽。

  2. 點擊添加域名,配置加速網域名稱的基本資料:

    • 加速域名:輸入對外提供服務的網域名稱,例如 www.example.com

    • 加速区域:根據主要使用者群體所在的地理位置選擇。

    • 业务类型:根據資源類型選擇,例如,對於小於 20MB 的圖片和網頁小檔案,選擇“圖片小檔案”。

    加速網域名稱-cn.jpg

  3. 點擊新增來源站點資訊,填寫OSS的資訊:

    • 來源站點資訊:選擇 OSS網域名稱。

    • 網域名稱:從下拉式清單中選擇目標 OSS Bucket 的外網網域名稱。

    image

  4. 單擊確定,然後單擊下一步。網域名稱添加後會進入推薦配置頁簽。

步驟二:配置核心加速策略(推薦配置)

您可以按照推薦配置的引導流程來添加緩衝到期時間、Range回源、忽略參數等基礎配置,這些配置可以提升CDN的快取命中率、訪問效能以及安全性。

2.1 配置緩衝到期時間

合理的緩衝規則能最大化 CDN 效能,減少不必要的回源請求。緩衝規則按順序匹配,首個命中的規則生效。根據資源的特性,配置合理的緩衝到期時間。以下為參考的推薦配置:

檔案類型

檔案尾碼名

到期時間

說明

圖片/音視頻

jpg,png,gif,mp3,mp4

30天

資源內容不經常變更

靜態指令碼

js,css

1小時

可能隨版本發布而頻繁變更

網站首頁

html

不緩衝(0秒)

確保使用者始終擷取最新頁面結構

2.2 配置忽略參數

開啟忽略參數功能後,CDN節點在產生緩衝hashkey時會去除URL中?之後的參數,這樣用戶端在攜帶不同的參數訪問同一個資源檔的時候,都能夠命中到同一個快取檔案,有助於提高快取命中率,減少回源流量。

image

2.3 開啟Range回源

適用於音視頻等較大檔案的內容分發,不適用於圖片小檔案等業務,圖片業務加速時無需配置。

開啟Range回源功能後,CDN節點請求來源站點OSS上的大檔案時,OSS將按照CDN請求的Range範圍返回分區內容,可減少回源流量消耗、減少資源回應時間。

image

2.4 配置OSS檔案自動重新整理緩衝

為確保OSS中的內容更新能及時同步到CDN,可以在OSS控制台Bucket配置 > 網域名稱管理頁面開啟目標網域名稱的OSS目標網域名稱綁定CDN緩衝自動重新整理,選擇需要自動重新整理的操作。當OSS內容發生更新時,OSS會自動觸發CDN重新整理任務。

說明

此功能為事件觸發,不保證100%的送達率和即時性。在OSS側高並發寫入或網路抖動等極端情況下,重新整理事件可能丟失。對時效性要求極高的情境,建議直接使用CDN的重新整理和預熱功能。

image

步驟三:配置DNS解析並驗證生效

  1. 前往阿里雲CDN控制台的網域名稱管理列表,找到之前添加的網域名稱,複製網域名稱對應的CNAME值(如果此處值為空白,請稍等五秒之後重新整理重試)。

    CANME-cn.jpg

  2. 使用加速網域名稱所在的阿里雲帳號,登入Alibaba Cloud DNS控制台,在網域名稱解析頁面,找到網域名稱並單擊解析設定。

  3. 單擊 添加記錄,建立一條 CNAME 記錄:

    • 記錄類型:選擇 CNAME

    • 主機記錄:填寫子網域名稱的首碼(例如 www)。

    • 記錄值:粘貼從 CDN 控制台複製的 CNAME 值。

    • 其他參數保持預設,然後單擊 確認。

    image

步驟四:安全配置

4.1 啟用HTTPS加密傳輸

如果您的應用在配置阿里雲CDN之前已經支援HTTPS訪問,請務必進行HTTPS認證的配置,否則您的網域名稱將不再支援HTTPS訪問。

說明

開啟HTTPS將產生HTTPS請求數,HTTPS請求數計費不能使用CDN流量包抵扣,請確保您的賬戶餘額充足,或購買HTTPS請求包,避免欠費導致CDN停止服務。詳情敬請參見靜態HTTPS請求數

  1. 前往阿里雲CDN控制台的網域名稱管理列表,找到之前添加的網域名稱,點擊管理,進入網域名稱配置頁。

  2. 選擇HTTPS配置頁簽中的HTTPS证书,點擊修改配置

  3. HTTPS设置介面,開啟HTTPS安全加速開關,並配置認證相關參數。

    HTTPS-cn.jpg

    說明
    • 如果您已在阿里雲數位憑證管理服務中購買了認證,請選擇雲盾(SSL)認證中心,並在证书名称中選擇已購買的認證,如果無法選擇您購買的認證,請檢查已購買認證綁定的網域名稱和加速網域名稱是否相同。

    • 如果您使用的是第三方服務商簽發的認證,請選擇自訂上傳(認證+私密金鑰),您需要在設定证书名称後,上傳認證(公開金鑰)私钥,該認證將在阿里雲數位憑證管理服務中儲存。您可以在我的認證中查看。

4.2 授權 CDN 訪問私人 Bucket

如果 OSS Bucket 為私人許可權,則必須完成以下授權,否則所有回源請求都將因無許可權而失敗。

  1. 前往阿里雲CDN控制台的網域名稱管理列表,找到之前添加的網域名稱,點擊管理,進入網域名稱配置頁。

  2. 回源配置中開啟私有Bucket回源,然後選擇同帳號回源。如果涉及到跨帳號回源,請參考OSS私人Bucket回源進行配置。

    image

4.3 配置 URL 鑒權

URL 鑒權(也稱時間戳記防盜鏈)通過在存取 URL 中加入簽名和到期時間,防止資源被惡意盜用。阿里雲CDN提供了多種鑒權方式,不同鑒權類型的區別和實現請參考配置URL鑒權

  1. 前往阿里雲CDN控制台的網域名稱管理列表,找到之前添加的網域名稱,點擊管理,進入網域名稱配置頁

  2. 访问控制頁簽中,選擇URL鉴权,點擊修改配置

  3. 在配置頁中,選擇A方式,設定一個主KEY和一個备KEY(主、備KEY至少要填寫一個),並妥善保管。這些密鑰將用於在服務端驗證帶有簽名的 URL,使用樣本請參考鑒權方式A說明

  4. 根據業務需求設定鑒權 URL 的有效時間,例如 1800 秒。

    image

4.4 配置用量封頂

為防止網域名稱被攻擊或盜刷產生突發高頻寬,導致產生高額賬單,可通過配置用量封頂,控制使用者訪問該網域名稱的頻寬、流量、HTTPS請求數上限值,減少因突發流量導致的損失。

  1. 網域名稱管理頁面,找到目標網域名稱,單擊操作列的管理

  2. 在指定網域名稱的左側導覽列,單擊流量限制

  3. 用量封頂頁簽中,參考功能介紹,配置適合自身業務的用量封頂策略。

  4. 點擊修改配置,可以根據自身業務選擇合適的統計周期閾值解鎖時間。具體參數配置請參考功能介紹

  5. 單擊確定,封頂規則即可建立成功並生效。

4.5 監控與警示

設定即時監控

設定對CDN產品下指定網域名稱的頻寬峰值監控,達到設定的頻寬峰值後將會給管理員發送警示,便於更加及時地發現潛在風險。詳情請參見設定警示

設定費用預警

您可以在控制台右上方功能表列費用選擇費用與成本,通過設定以下這幾個功能來更好地控制賬戶的消費額度,避免產生過高的賬單。

  • 可用額度預警:設定賬戶餘額低於一定金額時向警示連絡人的連絡方式發送警示資訊。

常見問題排查

訪問返回 403 Forbidden

排查方向

  1. 查看頁面的錯誤資訊,如果出現You don't have permission to access the URL on this server,並且附帶類似於denied by IP ACL = not in whitelist(被IP規則中的白名單攔截)的錯誤資訊,可以根據錯誤資訊快速定位被攔截的策略。

  2. 如果只出現You don't have permission to access the URL on this server,沒有出現對應的攔截資訊,請檢查CDN中URL鑒權和遠程鑒權。

快取命中率低,回源頻繁

排查方向

使用 curl -I 多次請求同一資源,觀察 Age 和 X-Cache 回應標頭。Age: 0 或 X-Cache: MISS 表示回源。

解決方案

  • 緩衝規則 TTL 設定過短或設定為“不緩衝”,適當調整緩衝規則,增加緩衝到期時間。

  • 開啟了“忽略參數”功能,但 URL 中存在用於版本控制或圖片處理的必要參數(如 ?v=1.1 或 x-oss-process),導致 CDN 將不同版本的 URL 視為同一資源,引發內容錯亂或功能失效,此時需要關閉忽略參數功能。

  • 來源站點回應標頭(如 Cache-Control: no-cache)指示 CDN 不緩衝。此時需要調整來源站點的緩衝策略,或者配置CDN不遵守來源站點緩衝策略(配置緩衝到期時間時,開啟忽略來源站點不緩衝標題)。

訪問資源提示AccessDenied

排查方向

查看給出的錯誤資訊,如果是You have no right to access this object because of bucket acl,說明錯誤是因為OSS中Bucket ACL是私人,需要開啟私有Bucket回源

解決辦法

在CDN控制台的回源配置中,開啟阿里雲OSS私人Bucket回源,然後使用資源重新整理功能,待訪問連結重新整理完成之後即可正常訪問。