請求分組管理
請求分組管理功能可以自定義分組名稱和規(guī)則,將流量根據(jù)規(guī)則歸類為不同的分組。此分組名稱用于定義Nginx防護(hù)的流控對象,便于您設(shè)置流控規(guī)則。本文介紹請求分組的管理流程、自定義配置等內(nèi)容。
前提條件
請求分組管理流程
Ingress/Nginx防護(hù)中的請求分組管理流程如下:
注入流量:用戶流量進(jìn)入到系統(tǒng)中。
流量分類:系統(tǒng)對流量進(jìn)行分類,分為匹配分組規(guī)則的分組流量和不匹配分組規(guī)則的接口流量。
流量歸類到對應(yīng)的分組名稱:
符合自定義分組規(guī)則的流量將歸類為對應(yīng)的分組名稱。
不符合自定義分組規(guī)則的流量,系統(tǒng)將自動按照域名與端口或URL路徑的方式,將流量收斂并生成相應(yīng)的接口名稱。
說明分組和接口總數(shù)相加不能超過2,000。
配置流控規(guī)則:對不同的分組設(shè)置流控規(guī)則。
自定義請求分組
- 登錄AHAS控制臺,然后在頁面左上角選擇地域。
在控制臺左側(cè)導(dǎo)航欄選擇 ,然后在Ingress/Nginx防護(hù)頁面,單擊目標(biāo)資源卡片。
在左側(cè)導(dǎo)航欄,單擊請求分組管理。
在請求分組管理頁面,單擊新增請求分組。
在新增自定義請求分組對話框,設(shè)置相關(guān)參數(shù),然后單擊新增。
參數(shù)
描述
請求分組名稱
只能包含字母、數(shù)字以及特殊字符下劃線(_)、短劃線(-)、半角句號(.)、半角冒號(:),不超過1024個字符。
域名和端口
匹配模式
無限制:對請求路徑?jīng)]有限制條件,系統(tǒng)對請求路徑不做任何檢查,直接通過。
精確匹配:域名要與匹配串完全一致。例如設(shè)置精確匹配的匹配串為console.aliyun.com,則這條分組規(guī)則只對該域名下的請求有效。
后綴匹配:只適用于域名和端口的匹配規(guī)則。例如設(shè)置后綴匹配的匹配串為aliyun.com,則這條分組規(guī)則對所有aliyun.com二級域名下的請求都有效,例如console.aliyun.com、img.aliyun.com、oss.aliyun.com等。
正則表達(dá)式:指標(biāo)準(zhǔn)正則表達(dá)式,表示該分組規(guī)則對符合該正則表達(dá)式的請求有效。
例如以下正則表達(dá)式:
^www*:表示所有以www開頭的字符串。
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?:符合域名格式得到匹配,例如192.168.1.1 aliyun.com。
匹配串
輸入對應(yīng)的匹配內(nèi)容。
URL路徑
匹配模式
無限制:對請求路徑?jīng)]有限制條件,系統(tǒng)對請求路徑不做任何檢查,直接通過。
精確匹配:請求路徑要和匹配串完全一致,例如/img/test.jpg,只有完全匹配這個路徑的流量才會命中規(guī)則。
前綴匹配:只適用于URL路徑的匹配規(guī)則。例如設(shè)置前綴匹配的匹配串為/api/,則這條分組規(guī)則對以/api/為開頭的請求有效。例如/api/、/api/test1、/api/test2。
正則表達(dá)式:指標(biāo)準(zhǔn)正則表達(dá)式,表示該分組規(guī)則對符合該正則表達(dá)式的請求有效。
例如以下正則表達(dá)式:
.*(.jpg|.png):表示以所有.jpg和.png結(jié)尾的字符串。
Chapter[^1-5]:表示除去Chapter1~Chapter5。例如該規(guī)則對Chapter6有效,但是對Chapter3無效。
匹配串
輸入對應(yīng)的匹配內(nèi)容,表示該分組規(guī)則對符合該匹配模式和匹配串的請求有效。
匹配客戶端URL路徑
對于大部分網(wǎng)關(guān)服務(wù)器如Nginx都提供了rewrite功能:
關(guān)閉此開關(guān),將對比rewrite之后的客戶端URL路徑是否符合上述規(guī)則。默認(rèn)是關(guān)閉。
開啟此開關(guān),將會忽略網(wǎng)關(guān)服務(wù)器配置的rewrite規(guī)則,還是對比原始的客戶端URL路徑是否符合該條自定義分組規(guī)則。
說明自定義請求分組規(guī)則優(yōu)先級說明:
如果一個請求流量符合多條分組規(guī)則,系統(tǒng)默認(rèn)選擇最先符合的那一條規(guī)則,后續(xù)不再繼續(xù)匹配。請求分組管理頁面的分組名稱已按照規(guī)則的優(yōu)先級從高到低順序排列。
分組規(guī)則的優(yōu)先級如下:
總體優(yōu)先級:規(guī)則方式>匹配模式>匹配串長度。
規(guī)則方式:域名與端口>URL路徑。
匹配模式:精確匹配>后綴匹配或前綴匹配>正則表達(dá)式>無限制。
匹配串長度:長的匹配串>短的匹配串。
如果是正則表達(dá)式,按照添加的時間,越后添加的權(quán)重越低。
設(shè)置未匹配分組規(guī)則的請求接口命名方式
若有流量未匹配到自定義的任一分組規(guī)則,系統(tǒng)會自動對其接口進(jìn)行命名,設(shè)置命名生成方式的操作步驟如下:
- 登錄AHAS控制臺,然后在頁面左上角選擇地域。
在控制臺左側(cè)導(dǎo)航欄選擇 ,然后在Ingress/Nginx防護(hù)頁面,單擊目標(biāo)資源卡片。
在左側(cè)導(dǎo)航欄,單擊請求分組管理。
在請求分組管理頁面,選擇未匹配分組請求的接口名稱生成方式。
default:域名和端口(推薦):用流量的域名和端口作為接口命名的方式。例如流量URL為http://demo.aliyun.com/api/login,則接口名稱為default:demo.aliyun.com。這種方式的收斂度較高,推薦您使用這種收斂方式。
URL路徑:用流量的URL路徑作為接口命名的方式。例如流量URL為http://demo.aliyun.com/api/login ,則接口名稱為/api/login。這種命名方式發(fā)散性較高,不建議選擇。特別是在流量遭到惡意攻擊的時候,極易出現(xiàn)接口詳情里接口過多難以管理的情況。
在提示對話框中單擊確認(rèn)修改。
后續(xù)步驟
定義成功的分組名稱會在接口詳情頁面展示,您可以對目標(biāo)接口設(shè)置流控規(guī)則。具體操作,請參見配置流控規(guī)則。