Chinaunix首页 | 论坛 | 博客
  • 博客访问: 759429
  • 博文数量: 201
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-06 22:16
文章分类

全部博文(201)

文章存档

2011年(1)

2010年(2)

2009年(57)

2008年(141)

我的朋友

分类: LINUX

2009-10-28 17:50:11

Apache2使用Bandwidth模块对下载进行限速

Bandwidth Module
Module homepage at

此模块适用于提供文件下载的网站,限制文件下载速度。
apache2必须以DSO模式安装
下载bw_mod-0.6.gz
#tar zxvf bw_mod-0.6.gz
#cd bw_mod-0.6
#apxs -i -a -c bw_mod-0.6.c
or
#apxs2 -i -a -c bw_mod-0.6.c
配置 (目录只看明白这一种)其它方法大家有空说一下。
例如限制soft目录下的文件下载速度,修改httpd.conf

BandWidthModule On
BandWidth all 30720


BandWidthModule On为启用带宽限制功能。
BandWidth all 30720第一个参数"all"为任何链接来源,第二个参数"30720"为限制带宽为30KB。

详细说明见bw_mod-0.6.txt

我把我反的放进来
绑定宽度模块(ON/OFF)(似乎翻译成限制带宽更好)
为使该模块工作你需要设置为ON。缺省情况下模块是不能工作的。也将不限制任何事情,
例如“BANDWIDTHMODULE ON
3。2 限制带宽查错[ON/OFF]
(缺省为OFF)当使其能工作时LOG将输出大量数据块到错误LOG,这些数据用于差错目的,并且不是经常需要的,如果你很好奇你可以使其工作,但是注意这将使你的LOG增大很多,
例如:BANDWIDTHDEBUG ON
3。3 FORCEBANDWIDTHMODULE(ON|OFF)
缺省情况下。这一模块将捕获每一请求。这样做的目的是更容易配置,如果你禁止了这一功能,你将不得不手工添加输出过滤器,如果你只想让某些需求被BW模块处理这样是有用的。
例如:FORCEBANDWIDTHMODULE OFF
ADD OUTPUTFILTERBYTYPE BW-MOD TEXT/HTML TEXT/PLAIN
3。4 BANDWIDTH[FROM][BYTES/S]
这个命令有两个参数。FROM是连接数据源,它可以是一个完全的主机,域的一部分,一个IP地址,一个网关(如192。168。0。0/24或192。168。0。0/255。255。255。0)或者全部。
第二个参数指明源所能达到的总速度,如果速度为0,将不限制速度。
例如:BANDWIDTH LOCALHOST 10240
BANDWIDTH 192。168。218。5 0
3。5MINBANDWIDTH[FROM][BYTES/S]
这一命令有两个参数,FROM是连接数据源,它可以是一个完全的主机,域的一部分,一个IP地址,一个网关(如192。168。0。0/24或192。168。0。0/255。255。255。0)或者全部。
第二个参数指明每一客户端所能拥有的最小速度,这是什么意思呢,如果你有一个总共100KBYTES的速度,并且你设置MINBANDWIDTH值为50,那么不管你有多少个客户,所有的客户都将有最小50K的下载速度,如果速度设置为0,你将使用缺省最小速度(256BYTES/S)
还有一个特殊的值是-1,这一值意味着每一客户将有一个由BANDWIDTH决定的最高速度,请看例子:
BANDWIDTH ALL 102400
MINBANDWIDTH ALL 50000
上例将使第一个客户有一个最高100K的速度。如果更多的客户连接面塑度将被相应分配但是每一客户将有最小50K的速度(即使你有50个客户)。
BANDWIDTH ALL 50000
MINBANDWIDTH ALL -1
上例是每一客户有50K的最高速度。
3。6 LARGEFILELIMIT[TYPE][MINIMUM SIZE][BYTES/S]TYPE。是是一个文件的后缀部分。或者使用*代表所有类型文件,你可以使用TGZ只匹配TAR-CAMPRESSED文件,。匹配影音文件,或者*匹配所有类型文件。
MINIMUM SIZE,是要匹配文件的大小(用KBYTES表示),这一方法你可以用于一个可能堵塞你带宽的巨大的影音文件。
最后一个参数不言自明:允许的速度
例如:LARGEFILELIMIT 。AVI 500 10240
这将限制一个大于(等于)500KB的影音文件以10KB/S的速度传送。
3。7 -BANDWIDTHPACKET[SIZE]
大概你根本用不上这个,它的缺省值为8192,几乎对任何速度都是合适的,
SIZE的大小必须在1024和131072之间,一个过小的包将引起最大速度减慢,模块将用更多的时间分割文件,如果你使用过大的值,模块将调整为更低的速度。
3。8-BANDWIDTHERROR[ERROR]
用于传送个性化错误代码。缺省情况下,当达到最大连接时,模块将发布一个503 HTTP-SERVICE-UNAVAILABLE代码,对一些用户来说,收到错误信息是令人厌烦的。也不知道是哪里出错。你可以使用一个 errordocument指明网页出现503错误是你处于过重的连接负荷,但是有时候503并不由模块发布。
所以。你可以用此设置在达到最大连接时返回错误代码。你可以使用300到599之间的代码,请注意,一些错误代码已经被使用。所以在使用任何数字之前请查阅一下代码列表(在GOOGLE中搜寻一下HTTP ERROR)
当测试时候。我曾经使用过错误代码510。这是已经被定义的代码
例如:个性化错误页
ERRORDOCUMENT 510/ERRORS/MAXEONEXCEEDED。HTML
BANDWIDTHERROR 510
注意:有时候。个性化页不显示,我不能肯定问题所在。但是大多数情况下。它是由于被超过1024BYTES的网页固定了。无论如何。如果你需要使用ErrorDocument的帮助,参考APACHE文档
3。9-MAXCONNECTION[FROM][MAX]
有两个参数。FROM是连接数据源,它可以是一个完全的主机,域的一部分,一个IP地址,一个网关(如192。168。0。0/24或192。168。0。0/255。255。255。0)或者全部。
第二个参数是允许连接到源的最大连接数,任何超过最大连接数的连接将收到 503 Service Temporarily Unavailable
你需要对相同的源使用BANDWIDTH限制。不需要设置最低连接限制。你可以使用不限制设置。你可能奇怪为什么。因为我用相同的存储空间进行BANDWIDTH限制和计算连接数
,所以我可以把存储空间节省下来。如果你不设置BANDWIDTH于同一源。MAXCONNECTION将被忽略。
例如: BandWidth all 0
MaxConnection all 20
or
BandWidth all 0
BandWidth 192.168.0.0/24 10240
MaxConnection all 20
MaxConnection 192.168.0.0/24 5
请记住每一速度很大程度上依赖于你的连接,如果你没有连接你不能得到更高的速度。
记住如果你没有遵循指示并得到了莫名其妙的结果,请在发EMAIL给我之前重新检查你的配置。
4 FAQ
(无特别命令)
1 为什么使用BW—MOD
如果你要限制一个站点所能使用 的最大速度或者限制每站点允许的最大连接。或者只是实验MOD
一些人告诉我。他们首先使用它来阻止小站点提供影音图片或其他内容时堵塞他们所有带宽。
2我应该怎么做
首先。阅读文档。如果你不能使其工作。或者你想询问更多特性。请访问主页。并且提交请求。集注阅读文档和FAQ。如果请求已经提交。我将马上删除副本。
3(略)
4 它是怎么工作的
这个模块设置一个你设置的配制所占有的共享内存。在这一空间它也存储当前使用的信息的计数(象当前连接,使用的BW,时间。发送的字节等)
当你设置了一个BW限制。这个模块将进行数据分割。并且分段传送数据。在每段之间有一个小的延迟。这个延迟将被调整以在每一秒至少传送一段数据

帖上自己正使用的限速代码:


# Limit BW usage
BandWidthModule On
ForceBandWidthModule On
MaxConnection all 200
Bandwidth all 819200

#MinBandwidth all 2048 #Connection-2K



# Limit BW usage
BandWidthModule On
ForceBandWidthModule On
MaxConnection all 200
Bandwidth all 51200

#MinBandwidth all 2048 #Connection-2K
阅读(2210) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~