如果您的業務需要根據請求的屬性(域名、路徑等)或請求中包含的數據信息(HTTP標頭、Cookie等)來進行流量分發和處理,您可以自定義監聽的轉發策略。監聽會根據轉發策略對訪問請求執行不同的轉發動作。本文為您介紹轉發策略功能原理以及如何添加、管理轉發策略。
轉發策略原理
轉發策略類型
轉發策略分為默認轉發策略和自定義轉發策略:
默認轉發策略:創建監聽后,系統自動創建一條默認轉發策略并關聯到默認終端節點組。一個監聽中只有一條默認轉發策略,且默認轉發策略不支持調整優先級、修改和刪除。
自定義轉發策略:創建監聽后,您可以根據實際需求手動創建自定義轉發策略。一個監聽中可以創建多個自定義轉發策略,且多個自定義轉發策略可調整優先級。
轉發策略組成
每條轉發策略均包含轉發條件和轉發動作兩個部分,訪問請求只有匹配所有的轉發條件后,才會執行對應的轉發動作。
監聽協議類型不同,支持的轉發條件和轉發動作不同:
監聽協議類型 | 轉發條件 | 轉發動作 |
TCP | 域名 | 轉發至、丟棄(阻斷流量) |
HTTP或HTTPS | 域名、路徑、HTTP標頭、HTTP請求方法、Cookie、SourceIP、查詢字符串 | 轉發至、重定向至、返回固定響應、重寫、寫入Header、刪除Header、丟棄(阻斷流量) |
如果您的標準型全球加速實例僅支持配置域名和路徑類型轉發條件,以及轉發至類型轉發動作,不支持其他類型的轉發條件和轉發動作,可能是由于實例版本不支持。如需使用,請向商務經理申請升級實例。
如果您的標準型全球加速實例不支持為TCP監聽添加轉發策略,可能是由于實例版本不支持。如需使用,請向商務經理申請升級實例。
轉發策略匹配規則
訪問請求會按照自定義轉發策略的優先級順序(轉發策略編號的數值越小,優先級越高)逐條匹配:
如果可匹配當前自定義轉發策略(即滿足所有轉發條件),立即執行當前自定義轉發策略的所有轉發動作。
如果不能匹配當前自定義轉發策略,則開始匹配次優先級自定義轉發策略。
訪問請求未能匹配任何自定義轉發策略時,將執行默認轉發策略(優先級最低),將訪問請求轉發至默認終端節點組。
如果TCP監聽存在多個默認終端節點組時,默認轉發策略會根據多終端節點組的流量調配規則進行轉發。更多信息,請參見多終端節點組流量調配原理及應用場景。
路徑如果配置為/*
,表示匹配所有路徑的請求。如果您需要一條兜底的轉發規則用于處理非預期的請求,轉發條件中路徑可以配置為/*
,轉發動作配置為返回固定響應,狀態碼設置為404或403,配置完成后將該轉發規則拖拽至倒數第二位置即可。
前提條件
您已經創建了標準型全球加速實例。具體操作,請參見創建和管理標準型全球加速實例。
全球加速實例為包年包月付費模式時,請確保您已經購買并綁定了基礎帶寬包。
您已經添加了智能路由類型監聽。具體操作,請參見添加和管理智能路由類型監聽。
添加轉發策略
您可以通過以下步驟添加自定義轉發策略,對匹配策略的請求執行對應的轉發動作。
登錄全球加速管理控制臺。
在實例列表頁面,找到目標全球加速實例,在操作列單擊配置監聽。
在監聽頁簽,找到目標監聽,然后單擊監聽ID。
在監聽詳情頁面,單擊轉發策略頁簽。
在轉發策略頁簽,單擊插入新策略,根據以下信息配置轉發策略,然后單擊確定。
HTTP或HTTPS監聽的轉發策略
參數
說明
策略名稱
自定義轉發策略的名稱。
如果(條件全部匹配)
選擇轉發條件類型。您還可以單擊+添加轉發條件添加多個轉發條件。
域名:輸入一個或多個域名。支持精準域名、通配符域名、正則表達式域名。關于域名配置規則的更多信息,請參見轉發條件的域名配置規則。
一個轉發策略內只支持創建一個域名類型轉發條件,該轉發條件內支持配置多個域名,多個域名間為“或”關系。
示例:*.example.com
路徑:輸入一條或多條路徑。支持精準路徑、通配符路徑、正則表達式路徑。關于路徑配置規則的更多信息,請參見轉發條件的路徑配置規則。
一個轉發策略內支持創建多個路徑類型轉發條件,多個路徑類型轉發條件間為“或”關系;一個路徑類型條件內支持配置多個路徑,多個路徑間為“或”關系。
示例:URL為
www.example.com/test/test1?x=1&y=2
時可配置為/test/*。HTTP標頭:在鍵是字段輸入HTTP標頭的名稱,值是字段輸入HTTP標頭的內容,可添加多個HTTP標頭值。一個轉發策略內支持創建多個HTTP標頭類型轉發條件,多個HTTP標頭類型轉發條件間為“與”關系,且多個HTTP標頭鍵不能重復;一個HTTP標頭類型轉發條件內支持配置多個HTTP標頭值,且多個HTTP標頭值不能重復。
示例:鍵是user-agent,值是*Mozilla/4.0*。
HTTP請求方法:選擇HTTP請求方法,包括HEAD、GET、POST、OPTIONS、PUT、PATCH、DELETE。一個轉發策略內只支持創建一個HTTP請求方法類型轉發條件,該轉發條件內支持配置多個HTTP請求方法,多個HTTP請求方法間為“或”關系。
Cookie:輸入一個或多個Cookie。一個轉發策略內支持創建多Cookie類型轉發條件,多個Cookie類型轉發條件間為“與”關系;一個Cookie類型條件內支持配置多個Cookie鍵值對,多個Cookie鍵值對間為“或”關系。
示例:key:value。
SourceIP:輸入一個或多個IP地址或者IP地址段。一個轉發策略內只支持創建一個SourceIP類型轉發條件,該轉發條件內支持配置多個IP地址或IP地址段,多個IP地址或IP地址段之間為“或”關系。
示例:IP地址例如1.1.XX.XX/32,IP地址段例如2.2.XX.XX/24。
查詢字符串:輸入一個或多個查詢字符串。一個轉發策略內支持創建多個查詢字符串類型轉發條件,多個查詢字符串類型轉發條件間為“與”關系;一個查詢字符串類型條件內支持配置多個字符串鍵值對,多個字符串鍵值對間為“或”關系。
示例:URL為
www.example.com/test/test1?x=1&y=2
時可配置為x:1或y:2。
那么轉發動作是
選擇轉發動作類型。您還可以單擊+添加動作添加多個轉發動作。
說明一個轉發規則必須包含有一條轉發至、重定向至或返回固定響應類型的轉發動作,以保證客戶端的請求不會中斷轉發動作。
一個轉發策略中最多只能有一條轉發至、重定向至或返回固定響應類型的轉發動作。
若一個轉發策略中存在重寫、寫入Header、刪除Header類型的轉發動作,必須同時配置一條轉發至類型的轉發動作,且順序必須在轉發至類型的轉發動作之前。
轉發至:選擇目標虛擬終端節點組。
重定向至:選擇協議和狀態碼并輸入跳轉的目的主機、端口、路徑和查詢字符串。其中,協議、主機、端口、路徑、查詢不能全部為空或者默認值。
重定向至中關于路徑的增強配置規則,請參見重寫和重定向中路徑的增強配置規則。
返回固定響應:輸入響應狀態碼,然后選擇響應正文類型并輸入響應正文。
重寫:分別輸入跳轉的目標域名、路徑和查詢字符串。
重寫中關于路徑的增強配置規則,請參見重寫和重定向中路徑的增強配置規則。
寫入Header:在鍵是字段輸入HTTP標頭名稱,值是字段輸入HTTP標頭的內容。輸入信息將覆蓋請求中已有的頭變量。寫入Header中的HTTP標頭鍵不能重復,也不能和刪除Header中的HTTP標頭鍵重復。
刪除Header:輸入HTTP標頭名稱。刪除Header中的HTTP標頭鍵不能重復,也不能和寫入Header中的HTTP標頭鍵重復。
丟棄(阻斷流量):直接丟棄訪問流量。
TCP監聽的轉發策略
重要為TCP監聽添加轉發策略時,需確保流量轉發到的后端服務為HTTPS服務,否則添加的轉發策略不生效。
參數
說明
策略名稱
自定義轉發策略的名稱。
如果(條件全部匹配)
配置轉發條件類型。僅支持域名類型。
域名類型轉發條件支持精準域名、通配符域名、正則表達式域名。關于域名配置規則的更多信息,請參見轉發條件的域名配置規則。
示例:*.example.com
您還可以單擊+添加域名添加多個域名類型轉發條件,多個域名間為“或”關系。
那么轉發動作是
選擇轉發動作類型。
一個轉發策略中最多只能有一條轉發至或丟棄(阻斷流量)類型的轉發動作。
轉發至:選擇目標默認終端節點組或虛擬終端節點組。
丟棄(阻斷流量):直接丟棄訪問流量。
您可以單擊繼續插入策略,一次添加多條轉發策略。
如果您需要添加多個轉發策略,可繼續單擊插入新策略進行添加。
更多操作
不支持對默認轉發策略進行編輯、調整優先級、刪除操作。
操作 | 說明 |
編輯轉發策略 | 在轉發策略頁簽,找到目標轉發策略,將鼠標懸浮至右上角并單擊出現的圖標,編輯轉發策略,然后單擊保存。 |
調整轉發策略優先級 | 轉發策略按照優先級從高到低開始匹配,數值越小優先級越高。您可以隨時更改自定義轉發策略的優先級,不能更改默認轉發策略的優先級。 在轉發策略頁簽,找到目標轉發策略并將其拖拽至目標位置,然后在頁面右上角單擊保存優先級。 |
刪除轉發策略 | 單個刪除轉發策略
批量刪除轉發策略
|
使用示例
轉發至指定虛擬終端節點組
假設某Web應用使用兩臺服務器分別通過不同的域名example.com
和example.net
對外提供服務,并使用全球加速服務提高該Web應用服務質量提升用戶訪問體驗。
全球加速可配置HTTPS監聽,通過添加默認終端節點組,綁定默認證書,將訪問example.com
的請求轉發至默認終端節點組。通過添加虛擬終端節點組,綁定擴展證書并創建域名類型轉發策略,將訪問example.net
的請求轉發至指定的虛擬終端節點組。
本示例域名類型轉發策略配置如下圖所示。
關于如何通過配置多證書和轉發策略實現加速訪問多個HTTPS域名,請參見單個全球加速實例加速訪問多個HTTPS域名。
重定向HTTP到HTTPS
為了提升網站的安全訪問能力,某網站將HTTP服務切換為HTTPS服務,但存量用戶可能無法使用原本HTTP方式訪問網站。該網站可使用全球加速的轉發策略功能配置重定向類型轉發策略,默認通過301重定向方式,將客戶端到全球加速的HTTP請求跳轉為HTTPS請求,HTTPS請求更安全。
本示例中將HTTP:80訪問重定向轉發至HTTPS:443,重定向類型轉發策略配置如下圖所示。
配置基于域名的流量阻斷
假設某網站通過域名example.com
對外提供服務,并將域名托管在某廠商的CDN服務上,為了進一步提升全球用戶的訪問體驗,該網站部署了阿里云全球加速服務,將CDN作為全球加速的后端服務,實現對網站資源的加速分發。
由于CDN服務具備多租戶共享接入IP的特性,當全球加速為example.com
提供加速服務時,相當于為該CDN開啟了一條加速通道。如果該CDN的其他租戶獲取到全球加速的加速IP,便可以將其他域名(例如example.net
)解析至該加速IP,從而達到"搭便車"的目的。這將導致example.com
承擔額外的流量和成本,甚至可能引發潛在的安全風險。
為規避上述風險,該網站可以使用全球加速的轉發策略功能,配置僅允許來自example.com
的請求接入全球加速,其他請求均被丟棄,實現不同域名訪問請求的嚴格隔離以及請求來源驗證,從而確保網站安全性。
本示例中將來自example.com
請求轉發至對應終端節點組中的后端服務中;其他所有域名的請求轉發動作為丟棄(阻斷流量)。
相關文檔
CreateForwardingRules:創建轉發策略。
UpdateForwardingRules:更新轉發策略。
ListForwardingRules:查看已經創建的轉發策略信息。
DeleteForwardingRules:刪除轉發策略。