nginx下载限速

上一篇日志中针对apache的下载限速做了介绍。本篇承接上篇对nginx的下载限速做一个总结及对比。Nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个模块来实现对目录和IP进行下载限速。

先来一个配置示例看下:

limit_zone one $binary_remote_addr 10m;
server {
listen       80;
server_name  test.361way.com;
location / {
root   /var/www/html;
index  index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
limit_conn one 2;
limit_rate 10k;
}

该配置中分了两部分。上面一部分用到了模块HTTPLimitZoneModule的用法。上面的配置中定义了一个名字为one大小为10M的容器,用于存储每个IP的session状态。该容器的大小要求大于等于32K,即每个session的大小为大于等于32k。按本例中10M大小来算,可以处理320000个session 。

配置完该容器后,HTTPLimitZoneModule模块下还有另外一个参数limit_conn,配合limit_zone参数使用。如本例中,指定了one容器中,限制每个IP只能发起来两个连接。HTTPLimitZoneModule模块的详细用法可以参看其官方wiki页面。本示例中的配置是只针对根目录的。如果要对其他目录设置,改为其应的location /path 即可。

下面接着看第二部分,即HTTPCoreModule模块部分。该模块所该的参数比较多。但对于速度方面的限制主要为limit_rate参数。该参数用于限制每个连接的速度大小。本例中限制每个连接的最大下限速度为10k/s 。不过本例中对于每个IP的下载速度的峰值是多大呢?

很简间,单个IP的最大连接为2,每个连接的最大速度为10k,每个IP的最大速度即为:10k * 2 = 20k/s 。HTTPCoreModule模块的其他用法,也可以参看该模块的官方wiki 

总结:

nginx以按默认方式编译安装的话自动会带以上两个模块的,不像apache需要通过编译时指定或动态加载第三方模块。从配置上来看,nginx的配置比较比较简洁,但功能上不如apache的mod_bw模块丰富。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值