[ nginx ] 带宽下载限速

  nginx上了一个APP提供给用户下载,考虑到带宽占用的问题,决定在nginx上作下载限速处理。html

操做系统:Centos6.7 X64nginx

nginx版本:nginx/1.11.3浏览器

根据官方文档:测试

 

对nginx.conf进行配置:网站

http {
  ...
  limit_conn_zone $binary_remote_addr zone=addr:10m;   # 添加该行
  ...
include vhost/*.conf; }


由于我这里是APP下载业务是定义的一个nginx虚拟主机spa

  
[root@localhost vhost]# pwd
/usr/local/nginx/conf/vhost

1 server { 2 listen *:8080; 3 server_name localhost; 4 location / { 5 root /usr/local/test; 6 index index.html; 7 limit_conn addr 1; # 每一个客户端只容许一个线程。 8 limit_rate 100k;  # 每一个线程最大下载速度100k 9 } 10 11 }
 
每一个客户端最终的下载速度 = limit_conn * limit_rate 我这里很明显是100kb/s

 

启动服务,并进行测试:操作系统

在网站根目录写入一个大文件并尝试下载:线程

[root@localhost test]# dd if=/dev/zero of=test.txt bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 2.99695 s, 350 MB/s

 

本地直接使用wget进行测试: 最大速度100kb/scode

 

客户端使用浏览器进行测试:server

 

 能够看见,nginx限速成功。我一个是本地测试,一个是局域网内部测试,固然公网测试就更加明显了。