limit_req_zone 不适用于 /login 路由

limit_req_zone 不适用于 /login 路由

我想允许每个 IP 每分钟 10 个请求。请求不应延迟,也不应爆发。我严格希望每分钟允许 10 个请求。

limit_req_zone $binary_remote_addr zone=login:10m rate=10r/m;
limit_req_status 429;

server {
    location /login {
            limit_req zone=login nodelay;
    }

    # ...
}

但查看我的开发者控制台,限制并未按预期工作(所有请求都在 1 分钟内发出)。第二个请求已被拒绝。

在此处输入图片描述

我希望它看起来像这样(10 个成功请求,然后 429,直到一分钟过去):

在此处输入图片描述

答案1

根据我的阅读文档我建议你尝试添加一个突发参数。你可以尝试删除“nodelay”看看会发生什么。

limit_req zone=login burst=5 nodelay;

相关内容