在我们的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;