脚本宝典收集整理的这篇文章主要介绍了Nginx 如何限制访问频率,下载速率和并发连接数的方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一、 限制访问频率、并发连接、下载速度用到的模块和指令概述
漏桶算法(leaky bucket)
算法思想是:
二、限制URL访问请求频率
http{ ... limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s; limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s; limit_req_zone $binary_remote_addr $REQUEST_URI zone=three:30m rate=20r/s; limit_req_status 444; ... server{ ... limit_req zone=two burst=15 nodelay; ... } }
解释:
limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s;
limit_req_zone $binary_remote_addr $uri zone=two:30m rate=20r/s;
limit_req_zone $binary_remote_addr $request_uri zone=three:30m rate=20r/s;
limit_req zone=two burst=15 nodelay;
三、并发连接数限制
案例一:
http { ... limit_conn_LOG_level error; limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn_status 503; ... server { ... location /download/ { limit_conn addr 1; 单个客户端IP限制为1 } ... }
案例二:
http{ limit_conn_zone $binary_remote_addr zone=PErip:10m; limit_conn_zone $server_name zone=perserver:10m; server { ... limit_conn perip 10; #单个客户端ip与服务器的连接数 limit_conn perserver 100; #限制与服务器的总连接数 } }
四、限制下载速度
location /download { limit_rate 128k; } #如果想设置用户下载文件的前10m大小时不限速,大于10m后再以128kb/s限速可以增加以下配内容 location /download { limit_rate_after 10m; limit_rate 128k; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本宝典。
以上是脚本宝典为你收集整理的Nginx 如何限制访问频率,下载速率和并发连接数的方法全部内容,希望文章能够帮你解决Nginx 如何限制访问频率,下载速率和并发连接数的方法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。