key-rate-limit外掛程式實現了基於特定索引值的限流,索引值來源可以是URL參數、HTTP要求標頭。本文介紹如何配置key-rate-limit外掛程式。
外掛程式類型
流量管控。
配置欄位
名稱 | 資料類型 | 填寫要求 | 預設值 | 描述 |
limit_by_header | string | 選填。limit_by_header、limit_by_param中選填一項。 | - | 配置擷取限流索引值的來源HTTP要求標頭名稱。 |
limit_by_param | string | 選填。limit_by_header、limit_by_param中選填一項。 | - | 配置擷取限流索引值的來源URL參數名稱。 |
limit_keys | array of object | 必填。 | - | 配置匹配索引值後的限流次數。 |
子項limit_keys中每一項的配置欄位說明。
名稱 | 資料類型 | 填寫要求 | 預設值 | 描述 |
key | string | 必填。 | - | 匹配的索引值。 |
query_per_second | number | 選填。query_per_second、query_per_minute、query_per_hour或query_per_day中選填一項。 | - | 允許每秒請求次數。 |
query_per_minute | number | 選填。query_per_second、query_per_minute、query_per_hour或query_per_day中選填一項。 | - | 允許每分鐘請求次數。 |
query_per_hour | number | 選填。query_per_second、query_per_minute、query_per_hour或query_per_day中選填一項。 | - | 允許每小時請求次數。 |
query_per_day | number | 選填。query_per_second、query_per_minute、query_per_hour或query_per_day中選填一項。 | - | 允許每天請求次數。 |
配置樣本
識別要求標頭x-ca-key,進行區別限流。
limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10 - key: 308239 query_per_hour: 10識別請求參數apikey,進行區別限流。
limit_by_param: apikey limit_keys: - key: 9a342114-ba8a-11ec-b1bf-00163e1250b5 query_per_second: 10 - key: a6a6d7f2-ba8a-11ec-bec2-00163e1250b5 query_per_minute: 100對特定路由或網域名稱開啟。
在
route-a和route-b兩個路由做如下外掛程式配置:limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10在
*.example.com和test.com兩個網域名稱做如下外掛程式配置:limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 100說明此例中的
route-a和route-b即在建立網關路由時填寫的路由名稱,當匹配到這兩個路由時,將使用此段配置。此例中的
*.example.com和test.com用於匹配請求的網域名稱,當發現網域名稱匹配時,將使用此段配置。配置的匹配生效順序,將按照規則的排列順序,匹配第一個規則後生效對應配置,後續規則將被忽略。