條件來源站點功能可以與規則引擎功能實現配置聯動,根據指定規則(如 request header、query string parameter、path、client IP 等)來過濾使用者請求,並將合格請求回源到指定的來源站點地址。可以添加多個配置,實現不同規則條件下回源到不同的來源站點。
前提條件
在添加條件來源站點配置之前,需要先在規則引擎中建立規則條件。
注意事項
功能衝突:條件來源站點與進階回源互斥,只能二選一配置。
萬用字元支援:在規則引擎中,URI匹配值支援萬用字元
*(匹配任意多個字元)和?(匹配任意單個字元)。進階回源功能中的 Path 匹配僅支援精確值,不支援萬用字元。規則優先順序與匹配順序:條件來源站點按所關聯規則條件的優先順序依次匹配,而非按功能自身的配置順序。命中某一條規則後不再繼續匹配。規則引擎中的規則條件優先順序由建立順序決定,越早建立的規則優先順序越高。若需調整匹配優先順序,需在規則引擎中刪除現有規則後,按期望的優先順序重新添加。
多重路徑配置技巧:在建立"包含"或"不包含"某路徑的規則時,可以在單條規則的匹配值中填寫多個路徑(支援多行或多值輸入),簡化配置。
規則數量限制:條件來源站點可引用的規則條件數量受規則引擎全域限制。單個網域名稱下所有功能(包括條件來源站點、進階回源、Referer 防盜鏈等)對規則條件的總引用次數最大不超過 5 次。在多來源站點複雜情境下,若超出該限制會導致配置失敗。建議合理規劃規則數量,或在來源站點過多時考慮使用獨立網域名稱分別加速。
來源站點為OSS時的注意事項
若來源站點為OSS,需要添加該來源站點地址到域名管理 > 基本配置 > 源站信息中,並且將來源站點類型設定為OSS網域名稱,以便CDN與OSS正常鑒權。
多 OSS 來源站點情境:當配置多個 OSS 來源站點時,必須為每個來源站點配置指定來源站點回源HOST,且 Host 值需與對應的 OSS Bucket 網域名稱完全一致(例如
dev-3mir.oss-cn-guangzhou.aliyuncs.com)。若未正確配置或依賴預設回源 Host,請求可能隨機回源至錯誤的 Bucket,導致 403 SignatureDoesNotMatch(簽名驗證失敗)或 404 Not Found 錯誤。每條條件回源規則(包括匹配規則和不匹配/兜底規則)都需要明確綁定對應的來源站點和回源 Host。建議在配置多個來源站點時,將基礎來源站點的權重設定為一致,並為每個條件來源站點配置獨立的規則條件,以確保回源路徑可控。
條件來源站點與基礎來源站點、進階回源的區別
條件來源站點和進階回源均可引用規則引擎中配置的規則條件,從而實現更靈活的回源策略。CDN 根據請求是否命中規則條件,自動選擇對應的來源站點:
來源站點類型 | 觸發條件 |
條件來源站點 | 請求命中條件來源站點引用的規則條件 |
進階回源 | 請求命中進階回源引用的規則條件 |
基礎來源站點 | 請求未命中任何條件來源站點 / 進階回源規則(預設兜底) |
操作步驟
樣本:/api/* 地址訪問 FC 服務,其他地址訪問 OSS 服務
進階回源僅支援精確值匹配,不支援萬用字元或Regex。要實現的路徑級回源,可以使用條件來源站點與規則引擎。通過條件來源站點功能結合規則引擎和 URL 重寫,可以實現將 /api/* 路徑的請求路由到Function Compute(FC)來源站點,其他請求預設回源到 OSS 來源站點。
建立規則引擎規則
登入域名管理,在網域名稱管理頁面找到目標網域名稱,進入規則引擎。
單擊添加規則,按下表配置規則條件:
配置項
值
規則名稱
自訂名稱,如
api-to-fc,便於後續識別匹配類型
URI
匹配運算子
包含其中任意一個
匹配值
*/api/*大小寫敏感
忽略大小寫(預設)
重要不要添加 hostname 條件。hostname 匹配的是請求網域名稱而非來源站點,添加 hostname 條件可能導致規則無法匹配 URL 重寫後的路徑。
單擊提交,儲存規則。
配置條件來源站點
在網域名稱管理頁面左側導覽列,進入域名管理 > 基本配置,在源站信息地區,單擊條件源站後的展開表徵圖。
單擊新增條件來源站點,在對話方塊中按下表配置:
配置項
值
規則條件
在下拉式清單中選擇步驟一建立的規則(如
api-to-fc)來源站點地址
輸入Function Compute(FC)的來源站點地址
單擊確定,完成配置。
配置回源 HOST
在回源配置中,為該規則指定回源 HOST 為 FC 的網域名稱,確保回源請求使用正確的 Host 頭。
配置 URL 重寫(可選)
如果業務需要將 /api/ 路徑重寫為 FC 上的 /print/api/ 路徑,需配合 CDN 的 URL 重寫功能進行配置:
在規則引擎中配置 URL 重寫規則,將
/api/重寫為/print/api/。確保步驟一中規則引擎的 URI 匹配條件能覆蓋重寫後的路徑(如使用
*/api/*或具體匹配/print/api/*)。
完成以上配置後,前端請求 /api/* 時將路由至 FC 服務,其他請求預設回源至 OSS。
樣本:基於 Referer 的條件回源
以下樣本將根據訪問來源(Referer)將請求路由到不同的來源站點,適用於圖片防盜鏈或來源控制的情境。
建立 Referer 規則條件
登入 CDN 控制台,選擇目標網域名稱,進入域名管理 > 規則引擎。
單擊添加規則,按下表配置:
配置項
值
規則名稱
referer-routing(自訂,便於識別)匹配類型
Referer
匹配運算子
包含其中任意一個
匹配值
example.com目標來源網域名稱。支援配置多個來源網域名稱。大小寫敏感
忽略大小寫
單擊提交,儲存規則。
配置條件來源站點
在網域名稱管理頁面左側導覽列,進入基本配置,在源站信息地區單擊條件源站後的展開表徵圖。
單擊新增條件來源站點,在對話方塊中按下表配置:
配置項
值
規則條件
在下拉式清單中選擇
referer-routing來源站點地址
輸入 Referer 來源對應的專用來源站點地址
單擊確定,完成配置。
常見問題
配置條件來源站點後,訪問資源仍回源到基礎來源站點或出現 404/403 錯誤,如何排查?
請按以下步驟逐一排查:
檢查規則匹配條件:確認請求的 URI、Header 等參數是否命中了您配置的條件規則。注意 URI 路徑匹配需使用萬用字元(如
/api/*),萬用字元*匹配零個或多個字元,?匹配任意單個字元。如果匹配值未加萬用字元,可能導致無法匹配。檢查回源 Host 配置:如果您的來源站點是 OSS,確認是否為每個條件來源站點配置了指定回源 Host,且 Host 值與對應 OSS Bucket 網域名稱完全一致。未正確配置回源 Host 會導致 OSS 簽名驗證失敗,返回 403 錯誤。
檢查來源站點地址:確認來源站點地址填寫正確且來源站點服務正常運行。可以通過直接存取 OSS Bucket 網域名稱驗證來源站點是否可達。
檢查緩衝狀態:配置修改後,CDN 邊緣節點可能仍保留舊配置下的緩衝內容。建議執行緩衝重新整理操作,以確保新配置立即生效。特別是基於 Cookie 的條件回源規則,若測試時帳號未登入(請求不攜帶 Cookie)或緩衝未清理,可能導致規則看似未生效。建議在測試時使用
curl -v -H "Cookie: key=value"命令類比攜帶 Cookie 的請求,驗證規則是否正確匹配。檢查 OSS 許可權:若回源 OSS 時返回 403 且錯誤資訊包含 "You have no right to access this object",檢查 OSS Bucket 的 ACL 許可權。若 Bucket 為私人許可權,需將其設定為公用讀取或在 CDN 配置回源鑒權。
檢查規則條件引用次數:確認單個網域名稱下規則條件的總引用次數未超過 5 次的上限。超限會導致新配置無法生效。
如何?中國內地和非中國內地使用者訪問不同的來源站點(流量分流)?
您可以通過條件來源站點結合規則引擎實現地區分流。具體配置如下:
建立地區規則條件:登入 CDN 控制台,選擇目標網域名稱,進入域名管理 > 規則引擎,單擊添加規則。
配置中國內地規則:匹配類型選擇使用者地理位置,匹配值選擇中國內地,關聯規則邏輯關係選擇或者,儲存規則。
配置海外規則(兜底):匹配類型選擇使用者地理位置,匹配值選擇不包含中國內地,儲存規則。
配置條件來源站點:在源站信息地區,分別為兩個規則關聯對應的來源站點:
中國內地規則關聯國內來源站點(如國內 OSS Bucket 或國內伺服器)
非中國內地(海外)規則關聯海外來源站點(如海外 OSS Bucket 或海外伺服器)
配置回源 Host:為每個來源站點分別配置指定回源 Host,確保 Host 值與對應來源站點網域名稱一致。
跨境最佳化建議
針對非中國內地使用者訪問中國內地來源站點延遲高或串連不穩定的情境,建議結合 OSS 傳輸加速最佳化跨境回源鏈路。配置方式如下:
中國內地使用者的條件來源站點回源至 OSS 普通公網網域名稱(如
bucket.oss-cn-hangzhou.aliyuncs.com)。非中國內地使用者的條件來源站點回源至 OSS 傳輸加速網域名稱(如
bucket.oss-accelerate.aliyuncs.com)。
OSS 傳輸加速利用全球分布的加速節點最佳化跨境傳輸鏈路,可有效降低回源延遲。關於 OSS 傳輸加速的詳細說明,請參見通過傳輸加速訪問OSS。
配置條件來源站點後,多久生效?是否需要重新整理緩衝?
生效時間:條件來源站點配置修改後,通常在 5~10 分鐘內全域生效。CDN 配置會逐步推送到各邊緣節點,在此期間可能出現新舊配置並存的情況。
緩衝重新整理建議:
配置生效後,如果CDN 邊緣節點已緩衝了舊配置下回源擷取的內容,建議執行緩衝重新整理操作,以確保使用者訪問到最新內容。您可以通過 CDN 控制台手動重新整理緩衝,或調用
RefreshObjectCachesAPI 進行批量重新整理。如果配置修改僅涉及回源規則(不涉及已緩衝內容本身),通常不需要重新整理緩衝,因為回源規則由 CDN 邊緣節點即時判斷。
對於首次配置條件來源站點的使用者,建議配置完成後使用 curl -I 命令測試不同路徑的回源結果,確認配置已生效。
CDN 回源私人 OSS 時,如何配合條件來源站點實現鑒權?
當您的 OSS Bucket 為私人許可權時,CDN 回源需要正確的鑒權配置才能正常擷取資源。請通過服務關聯角色授權 CDN 訪問私人 OSS,授權 CDN 服務訪問您的私人 OSS Bucket,詳細操作參見OSS私人Bucket回源。CDN 會通過服務關聯角色擷取 OSS 存取權限。授權後,CDN 回源私人 Bucket 時自動攜帶鑒權資訊,無需手動設定。
CDN 與Global Acceleration GA 聯用時出現 502 錯誤,如何排查?
若 CDN 與Global Acceleration(GA)聯動,且配置條件來源站點後出現 502 錯誤,請按以下方向排查:
檢查回源 Host 配置:使用條件來源站點時,需刪除預設的回源 Host,改為配置指定回源 Host。建議配置兩條規則分別處理中國內地和非中國內地流量:一條匹配中國內地流量,來源站點為中國內地伺服器 IP,指定回源 Host 設定為 CDN 加速網域名稱;另一條匹配非中國內地流量,來源站點為 GA 來源站點網域名稱,指定回源 Host 設定為 GA 來源站點網域名稱。
檢查協議與連接埠一致性:確保 GA 監聽連接埠與 CDN 回源連接埠一致。若 GA 使用 HTTPS 443 連接埠,建議 CDN 也通過 443 連接埠回源。若來源站點未配置 HTTPS 認證,可在 GA 中建立監聽 HTTP 80 連接埠的執行個體,使 CDN 通過 HTTP 80 連接埠回源至 GA,避免因協議或連接埠不匹配導致的 502 錯誤。
替代方案:若上述配置過於複雜,可考慮遷移至 ESA(邊緣安全加速),ESA 支援更靈活的條件來源站點配置及獨立回源連接埠配置。
配置條件來源站點是否影響防盜鏈功能?
不影響。防盜鏈策略(包括 Referer 防盜鏈、URL 鑒權等)對整個 CDN 網域名稱全域生效,與條件來源站點配置互不干擾。配置條件來源站點後,防盜鏈功能仍按原有策略正常工作。
CDN 配置條件來源站點時,來源站點中是否需要添加對應的 URL 路徑?
不需要。來源站點側只需佈建網域名,無需添加 URL 路徑規則。CDN 根據請求的完整 URL 進行回源判斷:
若請求滿足條件來源站點規則,則回源至對應規則關聯的來源站點。
若不滿足任何條件來源站點規則且存在基礎來源站點,則回源至基礎來源站點。
只需在 CDN 控制台添加對應的來源站點網域名稱,並為每個條件來源站點配置指定回源 Host(即來源站點網域名稱)。無需在來源站點側額外配置 URI 匹配規則。