[Apache] mod_bw 頻寬下載限制

自己在站内有写一篇 [apache] mod_cband 频宽限制,不过这套好像没有真对网站用 header「[PHP] header下载档案 搭配资料库」 吐出来的下载方式做限制,只能针对单存下载的连结做限制,所以自己爬文了一下,又找到了 Bandwidth Module 这个套件,Banwidth官方网,目前出到 mod_bw v0.8 说明档。

底下是针对 FreeBSD 安装方式,所以其他安装方法就参考上面的说明档了

cd /usr/ports/www/mod_bw/
make install clean

上面这样就安装好了,再来就是设定 mod_bw 了

BandWidthModule [On|Off]

apaceh 预设是关闭的,所以请把他打开

BandWidthModule on
ForceBandWidthModule [On|Off]

这个设定预设情形,他不会对每个要求限制,如果你把他打开,他就会对每个要求做限制

普通要求:AddOutputFilterByType MOD_BW text/html text/plain

打开设定:ForceBandWidthModule On

BandWidth [From] [bytes/s]

这个设定有2个参数,第一是from,第二是速度,第一你可以用整个ip位址,或者是network mask例如:192.168.0.0/24 or 192.168.0.0/255.255.255.0) or all。最后的all就是全部皆可,不限制

BandWidth localhost 10240
BandWidth 192.168.218.5 0

上面针对 localhost 给 10KB的速度,然后针对 192.168.218.5 不限制速度

在版本0.8还可以针对client端的瀏览器做限制

BandWidth u:[User-Agent] [bytes/s]

你可以利用正规语法比对client端瀏览器

BandWidth “u:^Mozilla/5(.*)” 10240
BandWidth “u:wget” 102400

还蛮不错的功能

MinBandWidth [From] [bytes/s]
BandWidth    all 102400
MinBandWidth all 50000

The example above, will have a top speed of 100kb for the 1º
client. If more clients come, it will be splitted accordingly but
everyone will have at least 50kb (even if you have 50 clients)

BandWidth    all 50000
MinBandWidth all -1

上面这个例子是保证client端下载速度保证 50KB/s

LargeFileLimit [Type] [Minimum Size] [bytes/s]

这个专门是用来限制大型档案,譬如说影音档 avi wmv 之类的 还蛮好用的喔

LargeFileLimit .avi 500 10240

上面是说如果 avi档案超过500KB 就限制速度在 10KB

BandWidthPacket

这个不用理他,不要随便调整他

BandWidthError [Error]

这是错误讯息导向,比如说超过限制,你可以写个html档然后导向那边

ErrorDocument 510 /errors/maxconexceeded.html
BandWidthError 510

MaxConnection [From] [Max]

限制连线数目,这个还蛮好用的

限制所有连线速度无限,但是只能有20条连线

BandWidth all 0
MaxConnection all 20

限制无限制ip速度无限,连线数20,然后网域192.168.0.0/24的速度 10KB,连线数目5

BandWidth all 0
BandWidth 192.168.0.0/24 10240
MaxConnection all 20
MaxConnection 192.168.0.0/24 5

然后在举一些官方的例子

Limit every user to a max of 10Kb/s on a vhost :

<Virtualhost *>
  BandwidthModule On
  ForceBandWidthModule On
  Bandwidth all 10240
  MinBandwidth all -1
  Servername www.example.com
</Virtualhost>

Limit al internal users (lan) to 1000 kb/s with a minimum of 50kb/s , and

files greater than 500kb to 50kb/s.

<Virtualhost *>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 1024000
MinBandwidth all 50000
LargeFileLimit * 500 50000
Servername www.example.com
</Virtualhost>

限制 avi 跟 mpg 速度 20kb/s.

<Virtualhost *>
BandwidthModule On
ForceBandWidthModule On
LargeFileLimit .avi 1 20000
LargeFileLimit .mpg 1 20000
Servername www.example.com
</Virtualhost>

Using it the “right” way, with output filter by mime type (for text) to 5kb/s:

<Virtualhost *>
BandwidthModule On
AddOutputFilterByType MOD_BW text/html text/plain
Bandwidth all 5000
Servername www.example.com
</Virtualhost>


发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

无觅相关文章插件,快速提升流量