最近有个需要,对部署的Nginx进行ip限制,具体要求是要做到把ip分成2~3组,每一组的访问Nginx频率都可以不一样。
经过查找资料,目前我在Nginx的配置如下:
http{
...
geo $whitelist{
default 1;
192.168.1.100; #假设客户机ip是这个
}
map $whitelist $limit{
1 $binary_remote_addr;
0 "";
}
limit_req_zone $limit zone=one:10m rate=1r/s;
server{
...
limit_req zone=one burst nodelay;
}
}
(请忽略以上手打造成的拼写错误)
现在可以做到的是配置里的白名单生效,其他的根据漏桶算法来503拒绝异常的请求,但是还做不到对IP进行分组。
于是乎,我又配置了另一条geo 另一条 map 另一条 limit_req_zone 另一条limit_req (这个方法是我瞎尝试的),发现达不到预期目的,表象是同一条指令先配置的先生效,另外配的同一条指令不同参数不生效。
请问有什么办法可以达到我想要的目的?谢谢!