Parameters
See plugin common configurations for configuration options available to all plugins.
All parameters can be configured using environment variables. For example, you can save Redis password to an environment variable REDIS_PASSWORD
and configure redis_password
to be $ENV://REDIS_PASSWORD
.
count
integer
required
vaild vaule:
greater than 0
The maximum number of requests allowed within a given time interval.
time_window
integer
required
vaild vaule:
greater than 0
The time interval corresponding to the rate limiting
count
in seconds.key_type
string
default:
var
vaild vaule:
one of the
var
,var_combination
, orconstant
The type of key. If it is
var
, thekey
is interpreted a variable. If it isvar_combination
, thekey
is interpreted as a combination of variables. If it isconstant
, thekey
is interpreted as a constant.key
string
default:
remote_addr
The key to count requests by.
rejected_code
integer
default:
503
vaild vaule:
between 200 and 599 inclusive
The HTTP status code returned when a request is rejected for exceeding the threshold.
rejected_msg
string
default:
503
vaild vaule:
any non-empty string
The response body returned when a request is rejected for exceeding the threshold.
policy
string
default:
local
vaild vaule:
one of the
local
,redis
, orredis-cluster
The 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.allow_degradation
boolean
default:
false
if true, allow APISIX to continue handling requests without the plugin when the plugin or its dependencies become unavailable.
show_limit_quota_header
boolean
default:
true
if true, include
X-RateLimit-Limit
to show the total quota andX-RateLimit-Remaining
to show the remaining quota in the response header.group
string
vaild vaule:
non-empty
The
group
ID for the plugin, such that routes of the samegroup
can share the same rate limiting counter.redis_host
string
The address of the Redis node. Required when
policy
isredis
.redis_port
integer
default:
6379
vaild vaule:
greater or equal to 1
The port of the Redis node when
policy
isredis
.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 whenpolicy
isredis
.redis_password
string
default:
6379
The password of the Redis node when
policy
isredis
orredis-cluster
.redis_database
integer
default:
0
vaild vaule:
greater or equal to 0
The database number in Redis when
policy
isredis
.redis_ssl
boolean
default:
false
if true, use SSL to connect to Redis cluster when
policy
isredis
.redis_ssl_verify
boolean
default:
false
if true, verify the server SSL certificate when
policy
isredis
.redis_timeout
integer
default:
1000
vaild vaule:
greater or equal to 1
The Redis timeout value in milliseconds when
policy
isredis
orredis-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
policy
isredis-cluster
.redis_cluster_ssl
boolean
default:
false
if true, use SSL to connect to Redis cluster when
policy
isredis-cluster
.redis_cluster_ssl_verify
boolean
default:
false
if true, verify the server SSL certificate when
policy
isredis-cluster
.