跳到主要内容

参数

请参阅 插件通用配置 了解所有插件可用的配置选项。

备注

在 API7 企业版(从 3.8.17 起),你应该配置以下参数集之一,但不能同时配置两者:

  • conn, burst, default_conn_delay, key
  • rules, default_conn_delay

rules 在 APISIX 中尚不可用。

  • conn

    integer | string


    required


    vaild vaule:

    大于 0


    允许的最大并发请求数。超过此配置限制但低于 conn + burst 的请求将被延迟处理。

    在 API7 企业版(从 3.8.17 起),此参数也支持字符串数据类型,并允许使用带美元符号 ($) 前缀的内置变量。在 APISIX 中,仅支持整数类型。

  • burst

    integer | string


    required


    vaild vaule:

    大于或等于 0


    每秒允许被延迟处理的额外并发请求数。超过此限制的请求将被立即拒绝。

    在 API7 企业版(从 3.8.17 起),此参数也支持字符串数据类型,并允许使用带美元符号 ($) 前缀的内置变量。在 APISIX 中,仅支持整数类型。

  • default_conn_delay

    number


    required


    vaild vaule:

    大于 0


    对于超出 conn + burst 限制的并发请求所允许的处理延迟(以秒为单位)。此值可根据 only_use_default_delay 设置进行动态调整。

  • only_use_default_delay

    boolean


    default: false


    如果为 false,则根据请求超出 conn 限制的程度按比例延迟请求。拥塞越严重,延迟越大。例如,conn5burst3default_conn_delay1 时,6 个并发请求会导致 1 秒延迟,7 个请求导致 2 秒延迟,8 个请求导致 3 秒延迟,依此类推,直至达到 conn + burst 的总限制,超出此限制的请求将被拒绝。

    如果为 true,则使用 default_conn_delay 来延迟所有在 burst 范围内的额外请求。超出 conn + burst 的请求将被立即拒绝。例如,conn5burst3default_conn_delay1 时,6、7 或 8 个并发请求都将被精确地延迟 1 秒。

  • key_type

    string


    default: var


    vaild vaule:

    varvar_combination


    键的类型。

    如果 key_typevar,则 key 被解释为一个变量。

    如果 key_typevar_combination,则 key 被解释为多个变量的组合。

  • key

    string


    required


    用于统计请求的键。

    如果 key_typevar,则 key 被解释为一个变量。变量不需要以美元符号 ($) 为前缀。可用的变量请参见内置变量

    如果 key_typevar_combination,则 key 被解释为多个变量的组合。所有变量都应加上美元符号 ($) 前缀。例如,要配置 key 使用两个请求头 custom-acustom-b 的组合,key 应配置为 $http_custom_a $http_custom_b

  • rejected_code

    integer


    default: 503


    vaild vaule:

    介于 200 到 599 之间(含边界值)


    当请求因超过阈值而被拒绝时返回的 HTTP 状态码。

  • rejected_msg

    string


    vaild vaule:

    任意非空字符串


    当请求因超过阈值而被拒绝时返回的响应体。

  • allow_degradation

    boolean


    default: false


    如果为 true,当插件或其依赖项不可用时,允许网关在没有该插件的情况下继续处理请求。

  • rules

    array[object]


    按顺序应用的限流规则数组。

    在 API7 企业版中从 3.8.17 版本开始可用。在 APISIX 中尚不可用。

    • conn

      integer | string


      required


      vaild vaule:

      大于 0


      允许的最大并发请求数。超过此配置限制但低于 conn + burst 的请求将被延迟处理。

      此参数也支持字符串数据类型,并允许使用带美元符号 ($) 前缀的内置变量

    • burst

      integer | string


      required


      vaild vaule:

      大于或等于 0


      每秒允许被延迟处理的额外并发请求数。超过此限制的请求将被立即拒绝。

      此参数也支持字符串数据类型,并允许使用带美元符号 ($) 前缀的内置变量

    • key

      string


      required


      用于统计请求的键。如果配置的键不存在,则不会执行该规则。

      如果 key_typevar,则 key 被解释为一个变量。变量不需要以美元符号 ($) 为前缀。可用的变量请参见内置变量

      如果 key_typevar_combination,则 key 被解释为多个变量的组合。所有变量都应加上美元符号 ($) 前缀。例如,要配置 key 使用两个请求头 custom-acustom-b 的组合,key 应配置为 $http_custom_a $http_custom_b

  • policy

    string


    default: local


    vaild vaule:

    localredisredis-cluster


    限流计数器的策略。如果是 local,计数器存储在本地内存中。如果是 redis,计数器存储在 Redis 实例上。如果是 redis-cluster,计数器存储在 Redis 集群中。

    如果你使用的是 API7 企业版,此选项从 3.9.0 版本开始可用。

  • redis_host

    string


    Redis 节点的地址。当 policyredis 时必须配置。

  • redis_port

    integer


    default: 6379


    vaild vaule:

    大于或等于 1


    policyredis 时 Redis 节点的端口。

  • redis_username

    string


    如果使用 Redis ACL,则为此 Redis 的用户名。如果使用传统的认证方法 requirepass,则只配置 redis_password。在 policyredis 时使用。

  • redis_password

    string


    policyredisredis-cluster 时 Redis 节点的密码。

  • redis_database

    integer


    default: 0


    vaild vaule:

    大于或等于 0


    policyredis 时 Redis 中的数据库编号。

  • redis_ssl

    boolean


    default: false


    如果为 true,当 policyredis 时使用 SSL 连接 Redis。

  • redis_ssl_verify

    boolean


    default: false


    如果为 true,当 policyredis 时验证服务器 SSL 证书。

  • redis_timeout

    integer


    default: 1000


    vaild vaule:

    大于或等于 1


    policyredisredis-cluster 时 Redis 的超时值(毫秒)。

  • redis_keepalive_timeout

    integer


    default: 10000


    vaild vaule:

    大于或等于 1000


    policyredisredis-cluster 时 Redis 的保活超时时间(毫秒)。

    此参数在 APISIX 中从 3.15.0 版本开始可用,在 API7 企业版中尚不可用。

  • redis_keepalive_pool

    integer


    default: 100


    vaild vaule:

    大于或等于 1


    policyredisredis-cluster 时 Redis 的保活连接池大小。

    此参数在 APISIX 中从 3.15.0 版本开始可用,在 API7 企业版中尚不可用。

  • redis_cluster_nodes

    array[string]


    Redis 集群节点的列表,至少包含两个地址。当 policyredis-cluster 时必须配置。

  • redis_cluster_name

    string


    Redis 集群的名称。当 policyredis-cluster 时必须配置。

  • redis_cluster_ssl

    boolean


    default: false


    如果为 true,当 policyredis-cluster 时使用 SSL 连接 Redis 集群。

  • redis_cluster_ssl_verify

    boolean


    default: false


    如果为 true,当 policyredis-cluster 时验证服务器 SSL 证书。