参数
有关所有插件均可使用的配置项,请参阅插件通用配置。
在 API7 企业版 3.8.17 及更高版本和 Apache APISIX 3.16.0 及更高版本中,请配置以下两组参数之一,不要同时配置:
conn,burst,default_conn_delay,keyrules,default_conn_delay
conn
integer | string
必填
有效值:
大于 0
允许的最大并发请求数。超过此配置限制但低于
conn + burst的请求将被延迟处理。在 API7 企业版(自 3.8.17 起)和 APISIX(自 3.16.0 起)中,此参数还支持字符串类型,并允许使用以美元符号(
$)为前缀的内置变量。较早的 APISIX 版本仅支持整数类型。burst
integer | string
必填
有效值:
大于或等于 0
允许延迟处理的额外并发请求数。超过
conn + burst的请求将被立即拒绝。在 API7 企业版(自 3.8.17 起)和 APISIX(自 3.16.0 起)中,此参数还支持字符串类型,并允许使用以美元符号(
$)为前缀的内置变量。较早的 APISIX 版本仅支持整数类型。default_conn_delay
number
必填
有效值:
大于 0
对于超过
conn但不超过conn + burst的并发请求,允许的处理延迟(秒)。此值可根据only_use_default_delay设置动态调整。only_use_default_delay
boolean
默认值:
false如果为 false,则根据请求超出
conn限制的程度按比例延迟请求。拥塞越严重,延迟越大。例如,conn为5,burst为3,default_conn_delay为1时,6 个并发请求会导致 1 秒延迟,7 个请求导致 2 秒延迟,8 个请求导致 3 秒延迟,依此类推,直至达到conn + burst的总限制,超出此限制的请求将被拒绝。如果为 true,则使用
default_conn_delay来延迟所有在burst范围内的额外请求。超出conn + burst的请求将被立即拒绝 。例如,conn为5,burst为3,default_conn_delay为1时,6、7 或 8 个并发请求都将被精确地延迟 1 秒。key_type
string
默认值:
var有效值:
var或var_combination键的类型。
如果
key_type是var,则key被解释为一个变量。如果
key_type是var_combination,则key被解释为多个变量的组合。key
string
必填
用于统计请求的键。
如果
key_type是var,则key被解释为一个变量。变量不需要以美元符号 ($) 为前缀。可用的变量请参见内置变量。如果
key_type是var_combination,则key被解释为多个变量的组合。所有变量都应加上美元符号 ($) 前缀。例如,要配置key使用两个请求头custom-a和custom-b的组合,key应配置为$http_custom_a $http_custom_b。rejected_code
integer
默认值:
503有效值:
介于 200 和 599 之间(含边界值)
当请求因超过阈值而被拒绝时返回的 HTTP 状态码。
rejected_msg
string
有效值:
任意非空字符串
当请求因超过阈值而被拒绝时返回的响应体。
allow_degradation
boolean
默认值:
false如果为 true,当插件或其依赖项不可用时,允许网关在没有该插件的情况下继续处理请求。
rules
array[object]
按顺序应用的限流规则数组。
自 API7 企业版 3.8.17 和 APISIX 3.16.0 起可用。
conn
integer | string
必填
有效值:
大于 0
允许的最大并发请求数。超过此配置限制但低于
conn + burst的请求将被延迟处理。此参数也支持字符串数据类型,并允许使用带美元符号 (
$) 前缀的内置变量。burst
integer | string
必填
有效值:
大于或等于 0
允许延迟处理的额外并发请求数。超过
conn + burst的请求将被立即拒绝。此参数也支持字符串数据类型,并允许使用带美元符号 (
$) 前缀的内置变量。key
string
必填
用于统计请求的键。如果配置的键不存在,则不会执行该规则。
如果
key_type是var,则key被解释为一个变量。变量不需要以美元符号 ($) 为前缀。可用的变量请参见内置变量。如果
key_type是var_combination,则key被解释为多个变量的组合。所有变量都应加上美元符号 ($) 前缀。例如,要配置key使用两个请求头custom-a和custom-b的组合,key应配置为$http_custom_a $http_custom_b。
policy
string
默认值:
local有效值:
local、redis或redis-cluster限流计数器的策略。如果是
local,计数器存储在本地内存中。如果是redis,计数器存储在 Redis 实例上。如果是redis-cluster,计数器存储在 Redis 集群中。如果你使用的是 API7 企业版,此选项从 3.9.0 版本开始可用。
redis_host
string
Redis 节点的地址。当
policy为redis时必须配置。redis_port
integer
默认值:
6379有效值:
大于或等于 1
当
policy为redis时 Redis 节点的端口。redis_username
string
如果使用 Redis ACL,则为此 Redis 的用户名。如果使用传统的认证方法
requirepass,则只配置redis_password。在policy为redis时使用。redis_password
string
当
policy为redis或redis-cluster时 Redis 节点的密码。API7 网关自 3.10.2 起会在保存到数据库前使用 AES256 加密该值;APISIX 自 3.18.0 起会在存储到 etcd 前使用 AES 加密该值。redis_database
integer
默认值:
0有效值:
大于或等于 0
当
policy为redis时 Redis 中的数据库编号。redis_ssl
boolean
默认值:
false如果为 true,当
policy为redis时使用 SSL 连接 Redis。redis_ssl_verify
boolean
默认值:
false如果为 true,当
policy为redis时验证服务器 SSL 证书。redis_timeout
integer
默认值:
1000有效值:
大于或等于 1
当
policy为redis或redis-cluster时 Redis 的超时值(毫秒)。redis_keepalive_timeout
integer
默认值:
10000有效值:
大于或等于 1000
当
policy为redis或redis-cluster时 Redis 的保活超时时间(毫秒)。此参数在 API7 企业版 3.9.x 系列中自 3.9.16 起可用,在 3.10.x 系列中自 3.10.3 起可用,并且在 APISIX 中自 3.15.0 起可用。
redis_keepalive_pool
integer
默认值:
100有效值:
大于或等于 1
当
policy为redis或redis-cluster时 Redis 的保活连接池大小。此参数在 API7 企业版 3.9.x 系列中自 3.9.16 起可用,在 3.10.x 系列中自 3.10.3 起可用,并且在 APISIX 中自 3.15.0 起可用。
key_ttl
integer
默认值:
3600当
policy为redis或redis-cluster时,Redis Key 的 TTL,单位为秒。自 API7 企业版 3.9.4 和 APISIX 3.15.0 起可用。redis_cluster_nodes
array[string]
Redis 集群节点的列表,至少包含两个地址。当
policy为redis-cluster时必须配置。redis_cluster_name
string
Redis 集群的名称。当
policy为redis-cluster时必须配置。redis_cluster_ssl
boolean
默认值:
false如果为 true,当
policy为redis-cluster时使用 SSL 连接 Redis 集群。redis_cluster_ssl_verify
boolean
默认值:
false如果为 true,当
policy为redis-cluster时验证服务器 SSL 证书。