Parameters
See plugin common configurations for configuration options available to all plugins.
In API7 Enterprise (from 3.8.17), you should configure one of the following parameter sets, but not both:
conn,burst,default_conn_delay,keyrules,default_conn_delay
rules is not available in APISIX yet.
conn
integer | string
required
vaild vaule:
greater than 0
The maximum number of concurrent requests allowed. Requests exceeding the configured limit and below
conn + burstwill be delayed.In API7 Enterprise (from 3.8.17), this parameter also supports the string data type and allows the use of built-in variables prefixed with a dollar sign (
$). In APISIX, only the integer type is supported.burst
integer | string
required
vaild vaule:
greater than or equal to 0
The number of excessive concurrent requests allowed to be delayed per second. Requests exceeding the limit will be rejected immediately.
In API7 Enterprise (from 3.8.17), this parameter also supports the string data type and allows the use of built-in variables prefixed with a dollar sign (
$). In APISIX, only the integer type is supported.default_conn_delay
number
required
vaild vaule:
greater than 0
Processing latency allowed in seconds for concurrent requests exceeding
conn + burst, which can be dynamically adjusted based ononly_use_default_delaysetting.only_use_default_delay
boolean
default:
falseIf false, delay requests proportionally based on how much they exceed the
connlimit. The delay grows larger as congestion increases. For instance, withconnbeing5,burstbeing3, anddefault_conn_delaybeing1, 6 concurrent requests would result in a 1-second delay, 7 requests a 2-second delay, 8 requests a 3-second delay, and so on, until the total limit ofconn + burstis reached, beyond which requests are rejected.If true, use
default_conn_delayto delay all excessive requests within theburstrange. Requests beyondconn + burstare rejected immediately. For instance, withconnbeing5,burstbeing3, anddefault_conn_delaybeing1, 6, 7, or 8 concurrent requests are all delayed by exactly 1 second each.key_type
string
default:
varvaild vaule:
varorvar_combinationThe type of key.
If the
key_typeisvar, thekeyis interpreted as a variable.If the
key_typeisvar_combination, thekeyis interpreted as a combination of variables.key
string
required
The key to count requests by.
If the
key_typeisvar, thekeyis 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_typeisvar_combination, thekeyis interpreted as a combination of variables. All variables should be prefixed by dollar signs ($). For example, to configure thekeyto use a combination of two request headerscustom-aandcustom-b, thekeyshould be configured as$http_custom_a $http_custom_b.rejected_code
integer
default:
503vaild vaule:
between 200 and 599 inclusive
The HTTP status code returned when a request is rejected for exceeding the threshold.
rejected_msg
string
vaild vaule:
any non-empty string
The response body returned when a request is rejected for exceeding the threshold.
allow_degradation
boolean
default:
falseIf true, allow APISIX to continue handling requests without the plugin when the plugin or its dependencies become unavailable.
rules
array[object]
An array of rate-limiting rules to be applied simultaneously.
Available in API7 Enterprise from 3.8.17. Not available in APISIX yet.
conn
integer | string
required
vaild vaule:
greater than 0
The maximum number of concurrent requests allowed. Requests exceeding the configured limit and below
conn + burstwill be delayed.This parameter also supports the string data type and allows the use of built-in variables prefixed with a dollar sign (
$).burst
integer | string
required
vaild vaule:
greater than or equal to 0
The number of excessive concurrent requests allowed to be delayed per second. Requests exceeding the limit will be rejected immediately.
This parameter also supports the string data type and allows the use of built-in variables prefixed with a dollar sign (
$).key
string
required
The key to count requests by. If the configured key does not exist, the rule will not be executed.
If the
key_typeisvar, thekeyis 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_typeisvar_combination, thekeyis interpreted as a combination of variables. All variables should be prefixed by dollar signs ($). For example, to configure thekeyto use a combination of two request headerscustom-aandcustom-b, thekeyshould be configured as$http_custom_a $http_custom_b.
policy
string
default:
localvaild vaule:
local,redis, orredis-clusterThe policy for rate limiting counter. If it is
local, the counter is stored in memory locally. If it isredis, the counter is stored on a Redis instance. If it isredis-cluster, the counter is stored in a Redis cluster.redis_host
string
The address of the Redis node. Required when
policyisredis.redis_port
integer
default:
6379vaild vaule:
greater than or equal to 1
The port of the Redis node when
policyisredis.redis_username
string
The username for Redis if Redis ACL is used. If you use the legacy authentication method
requirepass, configure only theredis_password. Used whenpolicyisredis.redis_password
string
default:
6379The password of the Redis node when
policyisredisorredis-cluster.redis_database
integer
default:
0vaild vaule:
greater than or equal to 0
The database number in Redis when
policyisredis.redis_ssl
boolean
default:
falseIf true, use SSL to connect to Redis cluster when
policyisredis.redis_ssl_verify
boolean
default:
falseIf true, verify the server SSL certificate when
policyisredis.redis_timeout
integer
default:
1000vaild vaule:
greater than or equal to 1
The Redis timeout value in milliseconds when
policyisredisorredis-cluster.redis_cluster_nodes
array[string]
The list of the Redis cluster nodes with at least two addresses. Required when policy is redis-cluster.
redis_cluster_name
string
The name of the Redis cluster. Required when
policyisredis-cluster.redis_cluster_ssl
boolean
default:
falseIf true, use SSL to connect to Redis cluster when
policyisredis-cluster.redis_cluster_ssl_verify
boolean
default:
falseIf true, verify the server SSL certificate when
policyisredis-cluster.