nginx限制带宽方法详解

发布时间:2019-09-14编辑:脚本学堂
有关nginx限制带宽,nginx限制连接数的方法,特别做下载服务时,可以限制下载速度,这在nginx中配置很简单,不了解的朋友参考下。

nginx做下载服务,需要对下载速度做限制,Nginx如何限制带宽?

参考如下方法:
首先,在http{}的配置中添加一条:
 

复制代码 代码示例:
limit_zone one $binary_remote_addr 10m;然后在server{}的配置中添加:
location / {
limit_conn one 1; 限制线程
limit_rate 100k; 限制速度
}
 

表示限速100K每个客户端只允许一个线程
 
客户端最终速度=rate * conn,这样就可以完美的实现限制带宽的设置了。
 
详细的官方规则:
http://wiki.nginx.org/NginxChsHttpLimit_zoneModule

nginx_limit_speed_module模块如何对location总带宽和每个IP速度的限制。
nginx_limit_speed_module项目地址:https://github.com/yaoweibin/nginx_limit_speed_module

nginx nginx_limit_speed_module限制总带宽

1. 介绍
该模块能够限制从一个地址同时连接的总速度。

2. 指令介绍
limit_speed_zone
语法:limit_speed_zone zone_name $variable memory_max_size
默认值:no
配置段:http
定义会话状态存储空间。会话的数目由所分配的变量$variable决定,该值取决于memory_max_size值。

如:limit_speed_zone one $binary_remote_addr 10m;
客户端的地址被用作会话。注意:该变量$binary_remote_addr是用来代替$remote_addr。
$remote_addr变量值的长度是7到15个字节。因此状态大小等于32或64字节。
$binary_remote_addr变量值的长度总是4个字节,因此状态大小始终是32字节。
1M共享空间可以处理3.2万个会话,每个会话32字节。

limit_speed
语法:limit_speed zone_name max_speed
默认值:no
配置段:http,server,location
该指令指定同一个IP的最大速度。
例如:如果限制每个IP地址的最大速度为100KB,同时同一个IP有10个并发连接,那么每个连接的速度为10KB。

3. 安装方法
 

复制代码 代码示例:
# ./configure –prefix=/usr/local/nginx –-add-module=./nginx_limit_speed_module-master
# make
# make install

4. 实例
 

复制代码 代码示例:

http {
    limit_speed_zone   www_jbxue_com  $binary_remote_addr  10m;

    server {
        location /download/ {
            limit_speed   www_jbxue_com  100k;
        }
    }
}