API7 Docs
Traffic ManagementLimit Req

Limit Req Configuration

Parameters

See plugin common configurations for configuration options available to all plugins.

  • ratenumber · required

    Valid values: greater than 0

    The maximum number of requests allowed per second. Requests exceeding the rate and below burst will be delayed.

  • burstnumber · required

    Valid values: greater than or equal to 0

    The number of requests allowed to be delayed per second for throttling. Requests exceeding the rate and burst will get rejected.

  • key_typestring · optional · default: var

    Valid values: var or var_combination

    The type of key.

    If the key_type is var, the key is interpreted as a variable.

    If the key_type is var_combination, the key is interpreted as a combination of variables.

  • keystring · required

    The key to count requests by.

    If the key_type is var, the key is interpreted as a variable. The variable does not need to be prefixed by a dollar sign ($). See built-in variables for available variables.

    If the key_type is var_combination, the key is interpreted as a combination of variables. All variables should be prefixed by dollar signs ($). For example, to configure the key to use a combination of two request headers custom-a and custom-b, the key should be configured as $http_custom_a $http_custom_b.

  • rejected_codeinteger · optional · default: 503

    Valid values: between 200 and 599 inclusive

    The HTTP status code returned when a request is rejected for exceeding the threshold.

  • rejected_msgstring · optional

    Valid values: any non-empty string

    The response body returned when a request is rejected for exceeding the threshold.

  • nodelayboolean · optional · default: false

    If true, do not delay requests within the burst threshold.

  • allow_degradationboolean · optional · default: false

    If true, allow the gateway to continue handling requests without the plugin when the plugin or its dependencies become unavailable.

  • policystring · optional · default: local

    Valid values: local, redis, or redis-cluster

    The policy for rate limiting counter. Required for API7 Enterprise (from 3.9.0) and optional for APISIX.

    When set to local, the counter is stored in memory locally. When set to redis, the counter is stored on a Redis instance. When set to redis-cluster, the counter is stored in a Redis cluster.

  • redis_hoststring · optional

    The address of the Redis node. Required when policy is redis.

  • redis_portinteger · optional · default: 6379

    Valid values: greater than or equal to 1

    The port of the Redis node when policy is redis.

  • redis_usernamestring · optional

    The username for Redis if Redis ACL is used. If you use the legacy authentication method requirepass, configure only the redis_password. Used when policy is redis.

  • redis_passwordstring · optional

    The password of the Redis node when policy is redis or redis-cluster. The password is encrypted at rest in API7 Enterprise. In APISIX, enable data encryption to encrypt it before etcd storage. Encryption was introduced in API7 Enterprise 3.9.16 and 3.10.2, and APISIX 3.18.0.

  • redis_databaseinteger · optional · default: 0

    Valid values: greater than or equal to 0

    The database number in Redis when policy is redis.

  • redis_sslboolean · optional · default: false

    If true, use SSL to connect to Redis when policy is redis.

  • redis_ssl_verifyboolean · optional · default: false

    If true, verify the server SSL certificate when policy is redis.

  • redis_timeoutinteger · optional · default: 1000

    Valid values: greater than or equal to 1

    The Redis timeout value in milliseconds when policy is redis or redis-cluster.

  • redis_keepalive_timeoutinteger · optional · default: 10000

    Valid values: greater than or equal to 1000

    Keepalive timeout in milliseconds for Redis when policy is redis or redis-cluster.

    This parameter is available in API7 Enterprise from version 3.9.17 on the 3.9 line and from version 3.10.4 on the 3.10 line, and in APISIX from version 3.15.0.

  • redis_keepalive_poolinteger · optional · default: 100

    Valid values: greater than or equal to 1

    Keepalive pool size for Redis when policy is redis or redis-cluster.

    This parameter is available in API7 Enterprise from version 3.9.17 on the 3.9 line and from version 3.10.4 on the 3.10 line, and in APISIX from version 3.15.0.

  • redis_cluster_nodesarray[string] · optional

    The list of Redis cluster nodes with at least one address. Required when policy is redis-cluster.

  • redis_cluster_namestring · optional

    The name of the Redis cluster. Required when policy is redis-cluster.

  • redis_cluster_sslboolean · optional · default: false

    If true, use SSL to connect to Redis cluster when policy is redis-cluster.

  • redis_cluster_ssl_verifyboolean · optional · default: false

    If true, verify the server SSL certificate when policy is redis-cluster.