将nginx速率限制应用于某些IP地址,并对其他速率进行限制

在我们的Nginxconfiguration中,我们目前有这个:

limit_req_zone $binary_remote_addr zone=two:10m rate=15r/m; limit_req zone=two burst=5 nodelay; 

现在我们要改变这个,以便这个速率限制适用于某些IP地址,然后有另一个适用于其他速率限制的限制略less。

 geo $limited_net { default 0; 111.222.333.444 1; } map $limited_net $addr_to_limit { 0 ""; 1 $binary_remote_addr; } limit_req_zone $addr_to_limit zone=two:10m rate=15r/m; geo $less_limited_net { default 1; 111.222.333.444 0; } map $less_limited_net $addr_to_limit { 0 ""; 1 $binary_remote_addr; } limit_req_zone $addr_to_limit zone=three:10m rate=25r/m; 

因此来自IP 111.222.333.444的stream量将受限于第一个限制性速率限制的影响,而不受第二个限制性限制。

我们还使用了cloudflare,并在/etc/nginx/cloudflare.conf中设置了与此https://support.cloudflare.com/hc/en-us/articles/200170706-How-do-I-恢复原装-访问者IP与- Nginx-

这会给我我想要的吗?

还是应该更像这样?

 geo $limited_net { default 0; 111.222.333.444 1; } map $limited_net $addr_to_limit { 0 ""; 1 $binary_remote_addr; } limit_req_zone $addr_to_limit zone=two:10m rate=15r/m; limit_req_zone $binary_remote_addr; zone=three:10m rate=25r/m;