如果您的業務需要根據請求的屬性(網域名稱、路徑等)或請求中包含的資料資訊(HTTP標題、Cookie等)來進行流量分發和處理,您可以自訂監聽的轉寄策略。監聽會根據轉寄策略對訪問請求執行不同的轉寄動作。本文為您介紹轉寄策略功能原理以及如何添加、管理轉寄策略。
轉寄策略原理
轉寄策略類型
轉寄策略分為預設轉寄策略和自訂轉寄策略:
預設轉寄策略:建立監聽後,系統自動建立一條預設轉寄策略並關聯到預設終端節點群組。一個監聽中只有一條預設轉寄策略,且預設轉寄策略不支援調整優先順序、修改和刪除。
自訂轉寄策略:建立監聽後,您可以根據實際需求手動建立自訂轉寄策略。一個監聽中可以建立多個自訂轉寄策略,且多個自訂轉寄策略可調整優先順序。
轉寄策略組成
每條轉寄策略均包含轉寄條件和轉寄動作兩個部分,訪問請求只有匹配所有的轉寄條件後,才會執行對應的轉寄動作。
監聽協議類型不同,支援的轉寄條件和轉寄動作不同:
監聽協議類型 | 轉寄條件 | 轉寄動作 |
TCP | 網域名稱 | 轉寄至、丟棄(阻斷流量) |
HTTP或HTTPS | 網域名稱、路徑、HTTP標題、HTTP要求方法、Cookie、SourceIP、查詢字串 | 轉寄至、重新導向至、返回固定響應、重寫、寫入Header、刪除Header、丟棄(阻斷流量) |
如果您的標準型Global Acceleration執行個體僅支援配置網域名稱和路徑類型轉寄條件,以及轉寄至類型轉寄動作,不支援其他類型的轉寄條件和轉寄動作,可能是由於執行個體版本不支援。如需使用,請向商務經理申請升級執行個體。
如果您的標準型Global Acceleration執行個體不支援為TCP監聽添加轉寄策略,可能是由於執行個體版本不支援。如需使用,請向商務經理申請升級執行個體。
轉寄策略匹配規則
訪問請求會按照自訂轉寄策略的優先順序順序(轉寄策略編號的數值越小,優先順序越高)逐條匹配:
如果可匹配當前自訂轉寄策略(即滿足所有轉寄條件),立即執行當前自訂轉寄策略的所有轉寄動作。
如果不能匹配當前自訂轉寄策略,則開始匹配次優先順序自訂轉寄策略。
訪問請求未能匹配任何自訂轉寄策略時,將執行預設轉寄策略(優先順序最低),將訪問請求轉寄至預設終端節點群組。
如果TCP監聽存在多個預設終端節點群組時,預設轉寄策略會根據多終端節點群組的流量調配規則進行轉寄。更多資訊,請參見多終端節點群組流量調配原理及應用情境。
路徑如果配置為/*
,表示匹配所有路徑的請求。如果您需要一條兜底的轉寄規則用於處理非預期的請求,轉寄條件中路徑可以配置為/*
,轉寄動作配置為返回固定響應,狀態代碼設定為404或403,配置完成後將該轉寄規則拖拽至倒數第二位置即可。
前提條件
您已經建立了標準型Global Accelerator執行個體。具體操作,請參見建立和管理標準型Global Acceleration執行個體。
GA執行個體為訂用帳戶付費模式時,請確保您已經購買並綁定了基礎頻寬包。
您已經添加了智能路由類型監聽。具體操作,請參見添加和管理智能路由類型監聽。
添加轉寄策略
您可以通過以下步驟添加自訂轉寄策略,對匹配策略的請求執行對應的轉寄動作。
在執行個體列表頁面,找到目標Global Acceleration執行個體,在操作列單擊配置監聽。
在監聽頁簽,找到目標監聽,然後單擊監聽ID。
在監聽詳情頁面,單擊轉寄策略頁簽。
在轉寄策略頁簽,單擊插入新策略,根據以下資訊配置轉寄策略,然後單擊確定。
HTTP或HTTPS監聽的轉寄策略
參數
說明
策略名稱稱
自訂轉寄策略的名稱。
如果(條件全部匹配)
選擇轉寄條件類型。您還可以單擊+添加轉寄條件添加多個轉寄條件。
網域名稱:輸入一個或多個網域名稱。支援精準網域名稱、萬用字元網域名稱、Regex網域名稱。關於網域名稱配置規則的更多資訊,請參見轉寄條件的網域名稱配置規則。
一個轉寄策略內只支援建立一個網域名稱類型轉寄條件,該轉寄條件內支援配置多個網域名稱,多個網域名稱間為“或”關係。
樣本:*.example.com
路徑:輸入一條或多條路徑。支援精準路徑、萬用字元路徑、Regex路徑。關於路徑配置規則的更多資訊,請參見轉寄條件的路徑配置規則。
一個轉寄策略內支援建立多個路徑類型轉寄條件,多個路徑類型轉寄條件間為“或”關係;一個路徑類型條件內支援配置多個路徑,多個路徑間為“或”關係。
樣本: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服務,否則添加的轉寄策略不生效。
參數
說明
策略名稱
自訂轉寄策略的名稱。
如果(條件全部匹配)
配置轉寄條件類型。僅支援網域名稱類型。
網域名稱類型轉寄條件支援精準網域名稱、萬用字元網域名稱、Regex網域名稱。關於網域名稱配置規則的更多資訊,請參見轉寄條件的網域名稱配置規則。
樣本:*.example.com
您還可以單擊+添加網域名稱添加多個網域名稱類型轉寄條件,多個網域名稱間為“或”關係。
那麼轉寄動作是
選擇轉寄動作類型。
一個轉寄策略中最多隻能有一條轉寄至或丟棄(阻斷流量)類型的轉寄動作。
轉寄至:選擇目標預設終端節點群組或虛擬終端節點群組。
丟棄(阻斷流量):直接丟棄訪問流量。
您可以單擊繼續插入策略,一次添加多條轉寄策略。
如果您需要添加多個轉寄策略,可繼續單擊插入新策略進行添加。
更多操作
不支援對預設轉寄策略進行編輯、調整優先順序、刪除操作。
操作 | 說明 |
編輯轉寄策略 | 在轉寄策略頁簽,找到目標轉寄策略,將滑鼠懸浮至右上方並單擊出現的表徵圖,編輯轉寄策略,然後單擊儲存。 |
調整轉寄策略優先順序 | 轉寄策略按照優先順序從高到低開始匹配,數值越小優先順序越高。您可以隨時更改自訂轉寄策略的優先順序,不能更改預設轉寄策略的優先順序。 在轉寄策略頁簽,找到目標轉寄策略並將其拖拽至目標位置,然後在頁面右上方單擊儲存優先順序。 |
刪除轉寄策略 | 單個刪除轉寄策略
大量刪除轉寄策略
|
使用樣本
轉寄至指定虛擬終端節點群組
假設某Web應用使用兩台伺服器分別通過不同的網域名稱example.com
和example.net
對外提供服務,並使用Global Acceleration服務提高該Web應用服務品質提升使用者訪問體驗。
Global Acceleration可配置HTTPS監聽,通過添加預設終端節點群組,綁定預設認證,將訪問example.com
的請求轉寄至預設終端節點群組。通過添加虛擬終端節點群組,綁定擴充認證並建立網域名稱類型轉寄策略,將訪問example.net
的請求轉寄至指定的虛擬終端節點群組。
本樣本網域名稱類型轉寄策略配置如下圖所示。
關於如何通過配置多認證和轉寄策略實現加速訪問多個HTTPS網域名稱,請參見單個Global Acceleration執行個體加速訪問多個HTTPS網域名稱。
重新導向HTTP到HTTPS
為了提升網站的安全訪問能力,某網站將HTTP服務切換為HTTPS服務,但存量使用者可能無法使用原本HTTP方式訪問網站。該網站可使用Global Acceleration的轉寄策略功能配置重新導向類型轉寄策略,預設通過301重新導向方式,將用戶端到Global Acceleration的HTTP請求跳轉為HTTPS請求,HTTPS請求更安全。
本樣本中將HTTP:80訪問重新導向轉寄至HTTPS:443,重新導向類型轉寄策略配置如下圖所示。
配置基於網域名稱的流量阻斷
假設某網站通過網域名稱example.com
對外提供服務,並將網域名稱託管在某廠商的CDN服務上,為了進一步提升全球使用者的訪問體驗,該網站部署了阿里雲Global Acceleration服務,將CDN作為Global Acceleration的後端服務,實現對網站資源的加速分發。
由於CDN服務具備多租戶共用接入IP的特性,當Global Acceleration為example.com
提供加速服務時,相當於為該CDN開啟了一條加速通道。如果該CDN的其他租戶擷取到Global Acceleration的加速IP,便可以將其他網域名稱(例如example.net
)解析至該加速IP,從而達到"搭便車"的目的。這將導致example.com
承擔額外的流量和成本,甚至可能引發潛在的安全風險。
為規避上述風險,該網站可以使用Global Acceleration的轉寄策略功能,配置僅允許來自example.com
的請求接入Global Acceleration,其他請求均被丟棄,實現不同網域名稱訪問請求的嚴格隔離以及請求來源驗證,從而確保網站安全性。
本樣本中將來自example.com
請求轉寄至對應終端節點群組中的後端服務中;其他所有網域名稱的請求轉寄動作為丟棄(阻斷流量)。
相關文檔
CreateForwardingRules:建立轉寄策略。
UpdateForwardingRules:更新轉寄策略。
ListForwardingRules:查看已經建立的轉寄策略資訊。
DeleteForwardingRules:刪除轉寄策略。