我在NGinX中遇到了速率限制的异常行为。我的任务是每秒支持10个请求,而不是使用突发选项。我使用nodelay选项拒绝任何超过设定费率的请求。
我的配置是:
..
http
{
..
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
..
server
{
..
location /
{
limit_req zone=one nodelay;
limit_req_status 503;
..
}
}
}
我看到的行为是,如果在收到前一个请求的响应之前发送了请求,NGinX将返回503错误。我在一秒钟内只看到2个请求就会看到这种行为。
我的配置中是否缺少导致此行为的内容? 是否需要一次性服务多个请求的突发选项?
答案 0 :(得分:0)
Burst像队列一样工作。没有延迟意味着请求不会在下一秒延迟。如果您没有指定队列,那么您不允许任何其他同时请求从该IP进入。该区域对每个ip生效,因为您的密钥是$ binary_remote_addr。
你需要爆发。