全部產品
Search
文件中心

Object Storage Service:通過CDN加速訪問OSS

更新時間:Feb 06, 2026

CDN加速為OSS提供全球分布式緩衝能力。當網站或應用需要向全球使用者分發儲存在OSS中的靜態資源(如圖片、音視頻、文檔)時,通過配置CDN加速,可以顯著提升訪問速度、降低網路延遲,並削減流量成本。

工作原理

CDN加速OSS採用分布式緩衝架構,將儲存在OSS Bucket(來源站點)中的靜態內容主動分發並緩衝到遍布全球的CDN邊緣節點上,通過就近訪問機制實現加速效果。

  1. 請求路由:使用者首次請求資源時,請求通過智能DNS解析被路由到地理位置最近且網路狀況最優的CDN節點。

  2. 回源擷取:該CDN節點檢測到本地無此資源緩衝,隨即向OSS來源站點發起回源請求擷取資源內容。

  3. 緩衝儲存:OSS響應資源內容後,CDN節點根據預設緩衝規則將資源儲存在本地,同時向使用者返回資源內容。

  4. 快取命中:後續使用者請求相同資源時,CDN節點直接從本機快取響應,無需回源擷取。這一機制大幅縮短訪問路徑,降低網路延遲,實現訪問加速的同時減少來源站點負載。

image

快速使用

前提條件

  • 擁有一個登入的網域名稱,或購買一個新網域名稱(支援綁定非阿里雲註冊的網域名稱)。

  • 如果加速地區包含中國內地,網域名稱必須完成ICP備案

步驟一:添加CDN加速網域名稱並配置來源站點

  1. 前往CDN控制台,單擊添加域名

  2. 選擇加速区域业务类型,填寫加速域名。加速網域名稱支援主網域名稱(如 example.com)或自訂的子網域名稱(如 oss.example.com),建議使用子網域名稱以便於管理和擴充。

  3. 單擊新增來源站點資訊,選擇源站信息OSS域名,並選擇目標Bucket網域名稱,單擊確定,添加OSS來源站點。

  4. 單擊下一步,完成CDN加速網域名稱添加。

CDN加速網域名稱添加完成後,可按照推薦配置的引導流程來添加緩衝到期時間、Range回源、HTTPS認證等基礎配置,或單擊跳過,暫不配置,直接進入CNAME配置。

步驟二:配置CNAME解析規則

通過DNS CNAME記錄將加速網域名稱指向CDN分配的CNAME地址,實現網域名稱解析到CDN節點的路由功能。以阿里雲DNS解析為例進行介紹:

  1. 前往DNS控制台,在目標網域名稱操作列單擊解析设置

  2. 單擊添加记录,填寫以下記錄資訊,其餘配置項可保持預設設定。

    配置項

    說明

    记录类型

    選擇CNAME

    主机记录

    填寫@(主網域名稱)或子網域名稱首碼(如oss),根據CDN加速網域名稱填寫。

    记录值

    填寫嚮導頁或加速網域名稱列表頁的CNAME值,如oss.example.com.w.cdngslb.com

  3. 單擊确定,按頁面提示完成解析記錄添加。

說明

DNS解析的生效時間取決於記錄的TTL(存留時間)設定,完全生效通常需要幾分鐘到幾小時。配置後立即訪問無效屬於正常現象,請耐心等待或嘗試清除本地DNS緩衝。

步驟三:設定私人Bucket回源

預設情況下,新建立的Bucket讀寫權限為私人,通過CDN訪問時需要開啟私人Bucket回源功能,授權CDN節點訪問私人資源。如果Bucket讀寫權限設為公用讀取,CDN可直接存取,無需開啟此功能。

  1. CDN控制台單擊目標網域名稱,然後在左側導覽列單擊回源配置

  2. 私有Bucket回源部分開啟私人Bucket回源,回源類型選擇同帳號回源

重要

開啟私人Bucket回源後,CDN將獲得訪問私人Bucket的授權,並自動在回源請求中添加簽名資訊。因此,用戶端必須使用不包含簽名參數的URL(如http://example.com/example.jpg)進行訪問。若URL中仍攜帶ExpiresSignature等簽名參數,將導致OSS鑒權失敗,返回403錯誤。

步驟四:驗證加速效果

配置完成後,通過對比測實驗證CDN加速網域名稱的效能提升效果。

  1. 擷取檔案訪問URL

    URL類型

    擷取方式

    OSS預設訪問URL

    前往Bucket列表,單擊目標Bucket,在目標檔案操作列單擊詳情,然後單擊復制文件 URL

    CDN加速訪問URL

    使用CDN加速網域名稱和檔案名稱構造URL,如 http://example.com/example.jpg不包含簽名資訊)。

  2. 驗證加速效果:使用專業的測速平台或工具(如CloudMonitor一次性撥測工具),對比兩個URL訪問同一檔案的載入時間。

    說明

    首次檢測時,因CDN節點無緩衝需回源擷取資源,加速效果可能不明顯。請於首次檢測後,待CDN緩衝生效後再次測試。

  3. 檢查快取命中狀態:通過瀏覽器的開發人員工具(F12),查看資源請求的回應標頭中X-Cache欄位的值:

    欄位值

    含義

    HIT開頭

    成功命中CDN緩衝,實現了加速效果。

    MISS開頭

    未命中CDN緩衝,請求已回源至OSS擷取資源。

情境樣本

視頻和大檔案加速

對於ApsaraVideo for VOD、大檔案下載等情境,需要特殊配置以確保良好的使用者體驗。

必要配置

  1. 開啟Range回源:為加速網域名稱開啟Range回源,允許CDN節點按需分區請求大檔案,可使用視訊拖拽播放和斷點續傳。

  2. 配置合理的緩衝時間:視頻檔案通常不頻繁更新,建議設定較長的緩衝時間(如30天以上),避免頻繁回源。

  3. 使用資源預熱:在視頻發布前,使用CDN的重新整理和預熱資源功能將視頻提前分發至邊緣節點。

視頻碼率建議

視頻載入速度與碼率密切相關。如果使用者反饋視頻播放卡頓,請檢查視頻碼率:

碼率範圍

適用情境

說明

500kbps~2000kbps

移動端、普通畫質

推薦範圍,載入流暢。

2000kbps~4000kbps

PC端、高清畫質

需確保使用者頻寬充足。

>6000kbps

超高清/4K

可能導致載入緩慢,建議提供多碼率版本。

說明

如果視頻碼率過高(>10Mbps),即使開啟CDN加速也可能出現載入緩慢的問題。建議使用視頻轉碼服務降低碼率,或提供多碼率自適應播放。

多Bucket回源配置

當業務架構依賴於多個OSS Bucket儲存不同類型或歸屬的資源時,可通過以下兩種方案配置多源回源。

方式一:獨立子網域名稱架構

為不同功能或資源類型的Bucket分配獨立的、語義化的子網域名稱,並為每個子網域名稱配置單獨的CDN加速。

資源類型

子網域名稱樣本

配置建議

圖片資源

img.example.com

配置長期緩衝策略以提升訪問速度

音視頻資源

video.example.com

啟用Range回源支援斷點續傳

敏感文檔

docs.example.com

單獨啟用URL鑒權保障安全

使用獨立子網域名稱架構具備以下優勢:

  • 語義化子網域名稱便於Team Dev識別和維護。

  • 在DNS層面實現流量分流,避免單一網域名稱的並發串連限制。

  • 各Bucket的緩衝策略、安全配置、監控警示可獨立設定。

  • 獨立的監控體系能夠精確定位效能瓶頸和異常流量。

方式二:統一網域名稱路徑路由

當多個Bucket分屬不同業務或應用,卻希望對外提供統一訪問入口時,可配置單一CDN加速網域名稱,利用規則引擎將不同訪問路徑的請求回源至指定Bucket。以加速網域名稱oss.example.com回源兩個Bucket(cdn-bucket1cdn-bucket2)為例:

  1. 添加來源站點資訊:將cdn-bucket1cdn-bucket2添加到加速網域名稱的源站信息中,並為網域名稱配置CNAME解析規則

  2. 添加路徑規則:在加速網域名稱的規則引擎 > 添加规则中,添加兩條URL路徑規則,分別匹配 http://oss.example.com/bucket1/*http://oss.example.com/bucket2/*

    規則名稱

    類型

    匹配運算子

    匹配值

    bucket1(可自訂)

    URI

    包含其中任意一個

    /bucket1/*

    bucket2(可自訂)

    URI

    包含其中任意一個

    /bucket2/*

  3. 添加條件來源站點:在加速網域名稱的基本配置新增條件來源站點,按路徑規則匹配來源站點。

    規則條件

    來源站點地址

    bucket1

    cdn-bucket1.oss-<region-id>.aliyuncs.com

    bucket2

    cdn-bucket2.oss-<region-id>.aliyuncs.com

  4. 指定來源站點回源HOST:在加速網域名稱的回源配置中添加指定來源站點回源HOST,確保回源請求正確到達目標Bucket。

    來源站點類型

    來源站點地址

    回源HOST類型

    回源HOST

    規則條件

    基礎來源站點地址

    cdn-bucket1.oss-<region-id>.aliyuncs.com

    基礎來源站點網域名稱

    cdn-bucket1.oss-<region-id>.aliyuncs.com

    bucket1

    基礎來源站點地址

    cdn-bucket2.oss-<region-id>.aliyuncs.com

    基礎來源站點網域名稱

    cdn-bucket2.oss-<region-id>.aliyuncs.com

    bucket2

  5. 重寫回源URL:在加速網域名稱的回源配置中添加重寫回源路徑,在回源時自動剝離虛擬路徑(如 /bucket1),使回源請求路徑與Bucket內對象的實際儲存路徑一致。

    待重寫的Path

    目標Path

    执行规则

    ^/bucket1/(.*)$

    /$1

    break

    ^/bucket2/(.*)$

    /$1

    break

  6. 效果驗證:配置完成後,即可使用單一CDN加速網域名稱根據不同路徑訪問不同的OSS Bucket資源。如訪問http://oss.example.com/bucket1/example.jpg,將回源到cdn-bucket1根目錄下的example.jpg檔案。

跨帳號私人回源配置

當業務需要跨帳號回源私人Bucket時,如使用A帳號的CDN加速網域名稱回源B帳號的Bucket,可在CDN加速網域名稱中開啟私有Bucket回源時選擇跨帳號回源實現。

  1. 添加跨帳號Bucket來源站點:建立CDN加速網域名稱添加來源站點資訊時,網域名稱選擇OSS自訂來源站,並輸入需要回源的Bucket網域名稱。

  2. 開啟跨帳號私人Bucket回源:在CDN加速網域名稱的回源配置中,開啟私有Bucket回源回源類型選擇跨帳號回源或同帳號回源,並輸入具有目標Bucket存取權限的AccessKey ID和AccessKey Secret。

應用於生產環境

最佳實務

安全傳輸:啟用HTTPS

為加速網域名稱配置HTTPS認證,並啟用強制HTTPS跳轉,實現用戶端到CDN節點間的資料加密傳輸。HTTPS不僅能有效防止資料在傳輸過程中被竊取或篡改,還能避免瀏覽器地址欄出現不安全警告,提升使用者信任度與品牌形象。

認證配置位置說明

訪問方式

認證配置位置

說明

直接存取OSS網域名稱

OSS控制台

在Bucket的Bucket 配置 > 域名管理中配置

通過CDN加速網域名稱訪問

CDN控制台

在加速網域名稱的HTTPS配置中配置

說明
  • 泛網域名稱認證(如 *.example.com)只能匹配次層網域,第三層網域名(如 img.cdn.example.com)需要單獨申請認證。

  • OSS不支援HTTP/2協議,如需使用HTTP/2,請通過CDN加速訪問。

效能最佳化:配置綜合緩衝策略

緩衝策略是CDN效能的核心要素,應包含緩衝有效期間和參數處理兩個維度。

設定緩衝有效期間

通過配置CDN緩衝到期時間,最大化快取命中率:

檔案類型

建議緩衝時間

說明

不常更新的靜態檔案(圖片、音視頻、安裝包)

1個月以上

減少不必要的回源請求

頻繁更新的靜態檔案(JS、CSS)

數小時~數天

配合版本號碼(如style.v1.1.css)管理

動態檔案或API(PHP、JSP)

0秒(不緩衝)

確保每次請求擷取最新內容

配置參數處理以啟用圖片處理

OSS的圖片處理(如縮放、裁剪、浮水印)是高頻使用功能。預設情況下,CDN為最大化快取命中率會過濾全部參數,這會導致?x-oss-process類的圖片處理指示失效。為正常使用此功能,需在CDN控制台加速網域名稱的性能优化中修改忽略參數配置。

業務情境

忽略參數配置

說明

純靜態資源分發

過濾全部參數

最大化快取命中率

使用OSS圖片處理

保留全部參數或保留指定參數x-oss-process

確保圖片處理指示生效

帶版本號碼的資源

保留指定參數vversion

支援版本號碼更新緩衝

可用性保障:使用資源預熱與自動重新整理

啟用緩衝後,來源站點檔案的更新將無法立即同步到CDN邊緣節點。建議採用以下策略:

  • 資源預熱:在版本發布或營運活動前,使用CDN的重新整理和預熱資源功能將熱點資源提前分發至全球節點,避免上線瞬間大量回源請求衝擊來源站點。

  • 緩衝自動重新整理:在Bucket的Bucket 配置 > 域名管理中為綁定的網域名稱開啟CDN緩衝自動重新整理。當通過API更新OSS檔案時,OSS會自動觸發CDN重新整理任務。

說明

緩衝自動重新整理僅在CDN加速與OSS Bucket歸屬同一阿里雲帳號時有效,且不保證絕對的及時性。對於時效性要求極高的情境,建議在更新檔案後主動使用CDN的重新整理功能。

跨域訪問:配置CORS策略

當前端應用需要跨域訪問CDN加速的OSS資源時,僅在OSS Bucket上配置CORS規則可能因CDN緩衝機制而失效。最佳實務是在CDN層面直接配置CORS相關回應標頭:

  1. CDN控制台單擊加速網域名稱或操作列的管理

  2. 缓存配置 > 修改出站回應標頭中配置回應標頭參數和回應標頭值。

    自定义响应头参数

    响应头值

    跨域驗證

    Access-Control-Allow-Origin

    *

    開啟

    Access-Control-Allow-Methods

    POST,GET, HEAD, PUT, DELETE

    不涉及

    Access-Control-Max-Age

    3600

    不涉及

    說明

    參數設定僅供參考,請結合實際業務情境進行調整。

效能最佳化:提升大檔案與資料轉送效率

  • 開啟Range回源:對於音ApsaraVideo for VOD、大檔案分發等情境,配置Range回源功能至關重要。它允許CDN節點按需分區請求大檔案,可實現視頻拖動播放等進階功能,並顯著減少回源流量和首屏等待時間。

  • 最佳化資料轉送:為減小JS、CSS、HTML等文字檔的傳輸體積,可在CDN控制台開啟Gzip壓縮頁面最佳化功能。

說明
  • 開啟頁面最佳化或Gzip壓縮功能會改變檔案的Content-LengthContent-MD5值。如果商務邏輯依賴這些值進行校正,請謹慎開啟。

  • 若同時開啟頁面最佳化和Gzip壓縮功能,頁面最佳化功能將失效,CDN只會對檔案進行Gzip壓縮。

平滑上線:零停機網域名稱切換

在將現有業務從OSS Bucket網域名稱切換至CDN加速網域名稱時,應採用分階段切換策略:

  1. 準備階段:完成CDN加速網域名稱的所有配置,並在測試環境中充分驗證其功能和效能表現。

  2. 灰階發布階段(建議在業務低峰期):採用灰階發布的方式將部分業務流量切換至CDN加速網域名稱,通過逐步放量降低切換風險。

  3. 驗證階段:密切監控業務訪問日誌和錯誤率,分析回應時間、成功率等關鍵計量,確保服務正常。

  4. 全量發布階段:經過充分驗證後,將全量業務流量切換至CDN加速網域名稱。

  5. 復原預案:如遇問題,立即復原至Bucket網域名稱,並詳細分析問題根因後重新部署。

風險防範

流量盜用防護:配置Referer防盜鏈與URL鑒權

為防止資源被非法網站盜用,產生不必要的流量費用和頻寬消耗,必須配置安全防護策略:

  • Referer防盜鏈配置Referer黑/白名單,通過校正HTTP要求標頭中的Referer欄位,僅允許來自指定網域名稱的訪問。

  • URL鑒權:針對私人許可權的OSS Bucket,開啟CDN的私人Bucket回源後,CDN節點即獲得訪問授權,這使得原本需要簽名的私人資源能通過CDN網域名稱被公開訪問。為恢複對私人資源的安全控制,建議在CDN層面啟用配置URL鑒權

說明

配置CDN加速後,盜鏈請求可能直接命中CDN緩衝而不回源到OSS,從而繞過OSS的防盜鏈驗證。為確保防護有效,必須在CDN層面也配置防盜鏈規則。

流量異常監控與警示

建議在CloudMonitor中為CDN加速網域名稱設定警示規則,當CDN流量異常增長時及時發現。

回源鏈路保障:配置回源SNI與回源HOST

確保CDN與OSS之間的回源通訊穩定且安全,是服務可用性的關鍵保障。

配置回源SNI

為避免不帶SNI(Server Name Indication)的CDN回源請求導致OSS訪問異常,需在CDN中配置預設回源SNI,並設定其與回源HOST相同(回源HOST預設為加速網域名稱)。當回源請求攜帶SNI時,OSS能夠在TLS握手階段精準識別業務網域名稱,從而返回匹配的認證。若OSS接收到不攜帶SNI的請求,將無法進行業務網域名稱的精準識別,可能觸發更嚴格的流量限制。

隱藏來源站點資訊

預設情況下,CDN使用Bucket網域名稱回源。當回源出錯時(如檔案不存在),錯誤資訊中可能暴露OSS Bucket網域名稱,存在安全風險。為隱藏來源站點資訊,可按以下步驟將回源HOST修改為CDN加速網域名稱:

  1. Bucket列表頁面單擊目標Bucket名稱,然後在Bucket 配置 > 域名管理中將CDN加速網域名稱綁定到Bucket。

  2. 在CDN控制台單擊目標加速網域名稱,然後在回源配置 > 預設回源HOST中單擊修改配置,將域名类型修改為加速域名

行為審計與排障:啟用訪問日誌

生產環境必須具備完善的日誌記錄能力,以便進行安全審計、效能分析和故障排查。建議在CDN控制台配置即時日誌推送,將訪問日誌投遞到Log ServiceSLS。通過SLS,可以對訪問行為、流量分布、熱門資源、錯誤請求等進行深度分析和監控警示。

計費說明

費用類型

說明

CDN費用

配置CDN加速訪問OSS會產生CDN流量費用,詳見CDN計費概述

OSS費用

CDN節點緩衝未命中時回源到OSS擷取資源,會產生CDN回源流出流量費用,詳見CDN回源流出流量

常見問題

為什麼CDN回源時出現5xx報錯?

5xx錯誤表示CDN無法成功從OSS來源站點擷取資源,需要從以下方面排查:

排查方向

檢查內容

來源站點配置

檢查CDN控制台配置的OSS來源站點地址是否正確。

回源協議

如果CDN配置了HTTPS回源或協議跟隨回源,請確保來源站點支援HTTPS訪問且SSL認證配置正確。

網路鏈路

測試CDN節點或本地到OSS來源站點的網路連通性。CDN節點是公網節點,來源站點必須連通公網。

來源站點壓力

CDN即時監控頁面觀察是否存在突增的頻寬和流量。對於熱點資源,應進行預熱資源設定合理的緩衝周期

為什麼配置靜態頁面後通過CDN加速訪問報錯403 Forbidden或You are forbidden to list buckets?

原因分析:此問題通常發生在為配置了靜態網站託管的私人Bucket開啟CDN加速後。根本原因在於兩種訪問機制的衝突:

  • CDN私人回源時會攜帶簽名資訊進行身分識別驗證。

  • OSS靜態網站託管的預設首頁功能(如訪問/時自動返回index.html)要求訪問請求必須是匿名的。

當使用者訪問加速網域名稱的根目錄時,CDN發起帶簽名的請求訪問Bucket根目錄。OSS收到簽章要求後不會觸發靜態網站託管邏輯,轉而嘗試執行ListObjects操作,最終導致403錯誤。

解決方案:繞過OSS的靜態網站託管機制,直接在CDN層面通過重寫訪問URL實現同樣效果:

參數

配置值

待重寫的Path

^/$(匹配根目錄訪問)

目標Path

/index.html(或實際首頁檔案名稱)

执行规则

Redirect

是否可以通過CDN網域名稱上傳檔案到OSS?

出於安全考慮,不建議通過CDN網域名稱上傳檔案到OSS。如果CDN被設定為公用寫入,任何人無需身分識別驗證即可通過CDN上傳檔案到OSS,容易受到惡意上傳和資料篡改的攻擊。建議在限制最小許可權的前提下,使用OSS網域名稱上傳檔案。

使用CDN加速後OSS下行流量是否會變少?

如果CDN緩衝的檔案被頻繁命中,OSS的公網流出流量會顯著降低,從而減少OSS流量成本。

CDN快取檔案被頻繁命中的前提是,業務情境中的部分資料在某段時間內被頻繁訪問,例如網站訪問、圖片檔案下載、遊戲發行等情境。快取命中率越高,回源流量越少,成本節省效果越明顯。

如何統計檔案的真實訪問次數?

啟用CDN加速後,OSS的訪問日誌將無法記錄由CDN緩衝直接響應的終端使用者訪問請求,可通過以下方式統計:

資料範圍

擷取方式

30天內的日誌資料

通過下載CDN的離線日誌進行查看和分析。

超過30天的日誌資料

在CDN中配置即時日誌推送後,在CDN即時日誌資料統計頁面查看和分析。

訪問報錯403 Forbidden如何排查?

403錯誤可能來自OSS或CDN的許可權攔截,建議直接存取OSS預設網域名稱觀察是否正常。

  • 正常:問題在CDN側,需排查CDN的Referer防盜鏈、URL鑒權、私人Bucket回源是否開啟等配置。

  • 也報403錯誤:問題在OSS側,需要排查OSS的Bucket ACL、Referer防盜鏈、Bucket Policy等配置。

為什麼業務切換到CDN後OSS仍產生下行流量費用?

可能原因:

  1. 存在直接存取OSS的請求:檢查業務代碼或第三方系統整合中是否有未替換為CDN加速網域名稱的OSS網域名稱。

  2. CDN緩衝未命中導致回源:回源會產生OSS的CDN回源流出流量。檢查CDN快取命中率,如果較低請最佳化緩衝配置。

  3. Bucket為公用讀取被惡意訪問:如果Bucket許可權為公用讀取,可能被惡意訪問。建議在業務允許的情況下將Bucket設為私人並開啟CDN私人回源。