Nginx通过ngx_http_limit_req_module实现限制请求数、限速、白名单

/etc/nginx/limit/white_list:白名单,key-value形式,支持掩码网段 #test 192.168.50.42 0; 192.168.50.0/24 0;

/etc/nginx/limit/limit_zone: geo $whitelist { default 1; # 不匹配白名单的都标记为1 参考2 include limit/white_list; } map $whitelist $limit { 1 $binary_remote_addr; # 1 保留源IP 参考3 0 ''; # 0 空 代表不作限制处理 } limit_req_zone $limit zone=Limit123:32768 rate=2r/s; # 最小为1024*32=32768,再小就报错,参考4

/etc/nginx/limit/limit_req: limit_req zone=Limit123 burst=5 nodelay; limit_req_status 567;

#burst漏桶原理(参考5),以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率.

压测并tailf日志: ab -n 50 -c 5 -k http://www.test.com

参考资料: 1 https://blog.csdn.net/weixin_38628533/article/details/80469712 2 https://www.cnblogs.com/kevingrace/p/6165572.html 3 https://www.cnblogs.com/zhengchunyuan/p/7410348.html 4 http://www.ttlsa.com/nginx/nginx-limiting-the-number-of-requests-ngx_http_limit_req_module-module/ 5 https://www.cnblogs.com/codingmode/p/11872055.html

猜你喜欢

转载自www.cnblogs.com/max27149/p/12017042.html