云原生網關在處理收到的請求時,會按照事先配置的路由規則的優先級逐一進行匹配。匹配過程是從高優先級規則向低優先級規則進行遍歷。如果與某條規則匹配成功,則轉發請求至規則中配置的目標服務;如果匹配失敗,則會返回404錯誤。
路由匹配優先級
存在多條路由規則時,按照關聯域名 > 路徑(Path)> 請求頭(Header)> 請求參數(Query)> 創建時間的優先級從高到低依次進行排序,詳細規則如下:
根據關聯域名進行判斷:域名字符串長度越長,優先級越高。
根據路徑(Path)進行判斷:
匹配規則不同時:等于 > 前綴是 > 正則匹配。
匹配規則相同時:路徑(Path)字符串越長,優先級越高。
根據請求頭(Header)的鍵值對總數進行判斷:總數越大,優先級越高。
根據請求參數(Query)的鍵值對進行判斷:總數越大,優先級越高。
根據創建時間進行判斷:創建時間越早則優先級越高。
操作步驟
登錄MSE網關管理控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇云原生網關 > 網關列表,單擊目標網關名稱。
在左側導航欄,單擊路由管理,然后在路由頁簽單擊創建路由。
在創建路由頁面,配置相關配置項,然后單擊保存。
說明匹配規則之間是“與”關系,即填寫的規則越多匹配的范圍越小。
路由之間匹配的優先級與路由配置頁面展示排列順序一致。
配置項
描述
路由名稱
自定義路由名稱。您還可以單擊添加描述對路由進行說明。
域名
選擇在路由需要匹配的域名,支持選擇多個域名。
如果您需要創建新的域名,可以直接單擊創建域名,在面板中進行創建。
匹配規則
路徑(Path)
設置匹配HTTP請求中的Path參數。
相同匹配規則時Path越長優先級越高。
不同匹配規則時等于 > 前綴是 > 正則匹配。
等于:即完全匹配。例如,Path等于
/user
。前綴是:以前綴作為匹配條件。例如,Path以
/user
開頭。正則匹配:以正則表達式作為匹配條件。
方法(Method)
設置匹配HTTP請求中的Method參數。支持選擇多種HTTP方法,默認為ANY。
請求頭(Header)
設置匹配HTTP請求中的Header參數,相同匹配規則時參數越多優先級越高。
請求參數(Query)
設置匹配HTTP請求中的Query參數,相同匹配規則時參數越多優先級越高。
使用場景
選擇當前路由的目標服務類型。
基礎場景:單服務
灰度場景:多服務、標簽路由
其他場景:Mock、重定向
關于目標服務不同類型說明,請參見路由方式概述。
說明涉及權重的目標服務流量比例總和要求為100%。
后端服務
選擇已關聯的后端服務和端口。
說明您可以單擊關聯服務,在面板選擇來源和服務。
不同的來源類型允許添加的來源數量有不同的限制。
容器服務不得超過5個。
Nacos和Zookeeper只能添加一個。
EDAS和SAE不限。
Fallback
設置Fallback服務,您需要選擇指定的服務。當路由指向的后端服務沒有可用節點時,原請求會訪問此處指定的Fallback服務。
說明目前僅支持HTTP服務之間的Fallback能力。
超時時間(秒)
輸入超時時間。默認為60秒。如果為0,則表示永不超時。
重試次數(次)
輸入重試次數。默認為2次。如果為 0,則表示禁用重試。
重試條件
選擇重試條件。
重試狀態碼
添加重試狀態碼,可添加多個。
相關文檔
根據實際情況和需求的變化,您可以隨時修改路由規則。具體操作,請參見變更路由規則。