Nginx 速率限制异常

Nginx 速率限制异常

我已经在 Nginx 配置中成功将速率限制应用到 1r/s,但是我想实现一个功能,该功能将对列入白名单的 IP 应用不同的速率限制设置(20r/s)。以下是相关的配置设置:

nginx.conf

limit_req_zone $limit zone=all:20m rate=1r/s;

域名配置文件

geo $whitelist {
        default 1;
        1.1.1.1 0;
    }
    map $whitelist $limit {
        0 "";
        1 $binary_remote_addr;
    }

limit_req zone=all burst=5;

这按预期工作,当我将 1.1.1.1 列入白名单时,我可以访问网站而完全不受速率限制。如何为列入白名单的 IP 实现 20r/s 的限制?我知道解决方案不是使用 2 个区域,但我已经阅读了文档几次,不知道如何实现这一点。提前致谢。

答案1

limit_req_zone $limit zone=all:20m rate=1r/s;

geo $whitelist {
        default 1;
        1.1.1.1 0;
    }
    map $whitelist $limit {
        0 "";
        1 $binary_remote_addr;
    }

limit_req_zone $whitelist zone=new:10m  rate=25r/m; burst=5;

相关内容