Parameters
See plugin common configurations for configuration options available to all plugins.
rate
vaild vaule:
greater than 0
The maximum number of requests allowed per second. Requests exceeding the rate and below burst will be delayed.
burst
vaild vaule:
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_type
vaild 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
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
vaild vaule:
between 200 and 599 inclusive
The HTTP status code returned when a request is rejected for exceeding the threshold.
rejected_msg
vaild vaule:
any non-empty string
The response body returned when a request is rejected for exceeding the threshold.
nodelay
If true, do not delay requests within the burst threshold.
allow_degradation
If true, allow the gateway to continue handling requests without the plugin when the plugin or its dependencies become unavailable.
policy
vaild vaule:
local,redis, orredis-clusterThe 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 toredis, the counter is stored on a Redis instance. When set toredis-cluster, the counter is stored in a Redis cluster.redis_host
The address of the Redis node. Required when
policyisredis.redis_port
vaild vaule:
greater than or equal to 1
The port of the Redis node when
policyisredis.redis_username
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
The password of the Redis node when
policyisredisorredis-cluster. In API7 Gateway from version 3.10.2, the value is encrypted with AES256 before being saved to the database. In APISIX from version 3.18.0, the value is encrypted with AES before being stored in etcd.redis_database
vaild vaule:
greater than or equal to 0
The database number in Redis when
policyisredis.redis_ssl
If true, use SSL to connect to Redis when
policyisredis.redis_ssl_verify
If true, verify the server SSL certificate when
policyisredis.redis_timeout
vaild vaule:
greater than or equal to 1
The Redis timeout value in milliseconds when
policyisredisorredis-cluster.redis_keepalive_timeout
vaild vaule:
greater than or equal to 1000
Keepalive timeout in milliseconds for Redis when
policyisredisorredis-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_pool
vaild vaule:
greater than or equal to 1
Keepalive pool size for Redis when
policyisredisorredis-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_nodes
The list of Redis cluster nodes with at least one address. Required when
policyisredis-cluster.redis_cluster_name
The name of the Redis cluster. Required when
policyisredis-cluster.redis_cluster_ssl
If true, use SSL to connect to Redis cluster when
policyisredis-cluster.redis_cluster_ssl_verify
If true, verify the server SSL certificate when
policyisredis-cluster.