我已经在 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;