Nginx自身提供了限制并发连接数和限制单连接速率的功能,可以根据这两个参数,对客户端进行粗略的速度控制。
例如,设定每个ip最大5个并发连 接,每个连接最大100kBps,那么可以将客户端的最大速率控制在500kBps。
但是这样带来一个问题,如果用户使用单线程的下载工具,那么只能达到 100kBps的速度,只有使用多线程下载工具才能达到500kBps。
所以有人就做了一个模块,可以动态的进行限速,针对配置文件中定义的变量给定一个最大速度,所有满足这个变量的连接共享这个最大速度。
下载地址:https://github.com/bigplum/Nginx-limit-traffic-rate-module
配置方法:
http {
limit_traffic_rate_zone rate $remote_addr 32m; //remote_addr可以替换成request_uri等变量
server {
location /download/ {
limit_traffic_rate rate 20k;
}
}
}
说点什么吧