Nginx限制用户下载文件速率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx限制用户下载文件速率相关的知识,希望对你有一定的参考价值。

下载www.linuxom.com/download/movie.avi 文件,默认情况下,很快就可以下载完成

# time wget http://42.51.137.195/download/movie.avi  --2013-04-05 02:42:39--  http://42.51.137.195/download/movie.avi  正在连接 42.51.137.195:80... 已连接。  
已发出 HTTP 请求,正在等待回应... 200 OK  
长度:40817431 (39M) [video/x-msvideo]  
正在保存至: “movie.avi.1”  100%[======================================>] 40,817,431   116M/s   in 0.3s  2013-04-05 02:42:40 (116 MB/s) - 已保存 “movie.avi.1” [40817431/40817431])  real    0m0.342s  user    0m0.021s  sys     0m0.180s


修改nginx.conf文件,限制下载速度为128kb/s

location /download {  
    limit_rate 128k;  
}


重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload


再次下载www.linuxom.com/download/movie.avi 文件

# time wget http://42.51.137.195/download/movie.avi  --2013-04-05 02:51:28--  http://42.51.137.195/download/movie.avi  正在连接 42.51.137.195:80... 已连接。  
已发出 HTTP 请求,正在等待回应... 200 OK  
长度:40817431 (39M) [video/x-msvideo]  
正在保存至: “movie.avi.5”3% [===>                                      ] 1,572,864    526K/s         
#########################省略部分内容########################real    0m1.332suser    0m0.009ssys     0m0.011s


发现限速成功。


如果想设置用户下载文件的前10m大小时不限速,大于10m后再以128kb/s限速可以增加以下配内容,修改nginx.conf文件

location /download {  
    limit_rate_after 10m;  
    limit_rate 128k;  
}


重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload


 再次下载www.linuxom.com/download/movie.avi 文件

# time wget http://42.51.137.195/download/movie.avi  --2013-04-05 02:55:33--  http://42.51.137.195/download/movie.avi  正在连接 42.51.137.195:80... 已连接。  
已发出 HTTP 请求,正在等待回应... 200 OK  
长度:40817431 (39M) [video/x-msvideo]  
正在保存至: “movie.avi.8”  26% [=================================>] 11,026,432  9.62M/s     
######################省略部分内容###########################  real    0m57.149s  user    0m0.013s  sys     0m0.212s


发现前10m左右,约为文件的26%时,文件下载不限速,随后开始限速。


以上是关于Nginx限制用户下载文件速率的主要内容,如果未能解决你的问题,请参考以下文章

几次请求后超出用户速率限制

nginx安全:用limit_req_zone/limit_req限制连接速率(流量控制/限流)

nginx安全:用limit_req_zone/limit_req限制连接速率(流量控制/限流)

nginx安全:用limit_req_zone/limit_req限制连接速率(流量控制/限流)

使用 C# MVC 的 GMail API 超出用户速率限制

Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击)