功能说明

key-rate-limit插件实现了基于特定键值实现限流,键值来源可以是 URL 参数、HTTP 请求头

运行属性

插件执行阶段:默认阶段 插件执行优先级:10

配置字段

名称数据类型填写要求默认值描述
limit_by_headerstring选填,limit_by_header,limit_by_param 中选填一项-配置获取限流键值的来源 http 请求头名称
limit_by_paramstring选填,limit_by_header,limit_by_param 中选填一项-配置获取限流键值的来源 URL 参数名称
limit_keysarray of object必填-配置匹配键值后的限流次数

limit_keys中每一项的配置字段说明

名称数据类型填写要求默认值描述
keystring必填-匹配的键值
query_per_secondnumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每秒请求次数
query_per_minutenumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每分钟请求次数
query_per_hournumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每小时请求次数
query_per_daynumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每天请求次数

配置示例

识别请求参数 apikey,进行区别限流

  1. limit_by_param: apikey
  2. limit_keys:
  3. - key: 9a342114-ba8a-11ec-b1bf-00163e1250b5
  4. query_per_second: 10
  5. - key: a6a6d7f2-ba8a-11ec-bec2-00163e1250b5
  6. query_per_minute: 100

识别请求头 x-ca-key,进行区别限流

  1. limit_by_header: x-ca-key
  2. limit_keys:
  3. - key: 102234
  4. query_per_second: 10
  5. - key: 308239
  6. query_per_hour: 10