小编Vie*_*ham的帖子

Nginx:根据响应状态代码限制请求

我正在尝试根据响应状态代码限制 nginx 的请求。我想减慢具有太多 4xx 或 5xx 响应的请求。我的配置文件中有这个代码块:

map $status $bad_guy {
    ~^[23]  "";
    default $binary_remote_addr;
}
limit_req_zone "$bad_guy" zone=badguy:10m rate=1r/s;

server {
    limit_req zone=badguy burst=20;
Run Code Online (Sandbox Code Playgroud)

看来上面的配置阻止了所有发送超过 1 rps 的 IP 地址,包括那些只有 200 OK 响应的 IP 地址。

请问你能帮帮我吗?为什么上面的配置不起作用?我是否必须使用其他东西(也许是 openresty?)来实现这一目标?谢谢。

nginx rate-limiting

5
推荐指数
1
解决办法
3012
查看次数

标签 统计

nginx ×1

rate-limiting ×1