插件说明与使用介绍 时间窗口内的请求数量阈值 [必填]特别地,当使用redis时,表示整个集群的请求计数。 count: 30 [必填]时间窗口的大小(以秒为单位) timewindow: 60 [可选]请求超过阈值被拒绝时,返回的 HTTP 状态码 rejectedcode: 503 [可选]key 的类型 keytype: "var" [可选]用来做请求计数的依据 key: "remoteaddr" [可选]当设置rejectedmsg时,非空。默认可不填 rejectedmsg: "Requests are too frequent, please try again later." [可选]当限流插件功能临时不可用时(例如,Redis 超时)是否允许请求继续。当值设置为 true 时则自动允许请求继续,默认值是 false allowdegradation: false [可选]是否在响应头中显示 XRateLimitLimit 和 XRateLimitRemaining (限制的总请求数和剩余还可以发送的请求数),默认值是 true showlimitquotaheader: true [必填]速率限制策略,使用单节点redis policy: "redis" [必填]redis服务地址 redishost: "127.0.0.1" [可选]redis服务端口 redisport: 6379 [可选]redis服务密码 redispassword: "password" [可选]redis服务的datebase redisdatabase: 1 [可选]redis服务的超时时间,单位毫秒 redistimeout: 1000 停用/启用 在配置页面设置生效开关 验证插件 上述配置限制了 60 秒内只能访问 2 次,前两次访问都会正常访问: curl i 响应头里面包含了XRateLimitLimit 和XRateLimitRemaining,他们的含义分别是限制的总请求数和剩余还可以发送的请求数: HTTP/1.1 200 OK ContentType: text/html ContentLength: 13175 Connection: keepalive XRateLimitLimit: 2 XRateLimitRemaining: 0 Server: APISIX web server 当你第三次访问的时候,就会收到包含 503 返回码的响应头: HTTP/1.1 503 Service Temporarily Unavailable ContentType: text/html ContentLength: 194 Connection: keepalive Server: APISIX web server 503 Service Temporarily Unavailable 503 Service Temporarily Unavailable openresty 同时,如果你设置了属性rejectedmsg 的值为"Requests are too frequent, please try again later." ,当你第三次访问的时候,就会收到如下的响应体: HTTP/1.1 503 Service Temporarily Unavailable ContentType: text/html ContentLength: 194 Connection: keepalive Server: APISIX web server {"errormsg":"Requests are too frequent, please try again later."} 这就表示limit count 插件生效了。