#tar xvf mod_bw-0.8.gz
 
# cd mod_bw
 
# /opt/apache/bin/apxs -ac mod_bw.c
 
# gcc -shared -p /opt/apache/module/mod_bw.so mod_bw.o
 
#/opt/apache/bin/apxs -i -a -c mode_bw.c
 
然后在 apache 配置档案里面按照需要新增限制即可。
 

 
DocumentRoot “/web/linuxidc”
 
ServerName www.linuxidc.com
 
 
BandwidthModule On
 
ForceBandWidthModule On
 
Bandwidth all 1024000
 
MinBandwidth all 50000
 
LargeFileLimit * 500 100000   // *表示档案型别,所有大于 500k 的档案下载速度 100k , 这里我当时以为两个单位一样的。。。
 

 
附录:
 
mod_bandwidth 选项简单说明:
 
BandWidthPulse
格式: BandWidthPulse <毫秒(千分之一秒>;
预设: 1000
上下文: per server config
 
改变计算频宽的时间间隔,预设为 1000 毫秒(1 秒)。使用更低的间隔可以获得
更精确的频宽控制,但消耗更多的 CPU 时间,反之亦然。
 
BandWidth
格式: BandWidth ; <速率>;
预设: 无
上下文: per directory, .htaccess
 
限制这个目录下档案下载的速率。
 
domain 指定来自哪个域的连线受到这个设定的影响。
ip 指定来自哪个 ip 地址(或者 ip 段)的连线受到影响。
all 所有连线都受到影响。
 
示例:
 
;
# 来自 idcfree.com 的连线不限制下载速度
BandWidth idcfree.com 0
# 来自 192.168.0.0/16(或者 192.168.0)网段的连线不限制下载速度
BandWidth 192.168.0.0/16 0
# 其他连线限制下载速度为每秒 1024 位元组
BandWidth all 1024
# 越前面的设定优先权越高
;
 
LargeFileLimit
格式: LargeFileLimit <档案大小>; <速率>;
预设: 无
上下文: per directory, .htaccess
 
对于超过指定大小的档案,下载时使用的速率。如果速率设定 0 即不限制速度,
但下载速度仍然要受到 BandWidth 设定的影响。如果设定成-1,则完全不受影响。
通过设定不同的档案大小和速率,可以设定不同大小范围内档案的下载速度。
 
示例:
 
档案尺寸大于等于 200 千位元组的档案,下载速率为每秒 3072 位元组
LargeFileLimit 200 3072
LargeFileLimit 1024 2048
MaxConnection
格式: MaxConnection <连线数>;
预设: 0(不限制)
上下文: per directory, .htaccess
 
当超过指定连线数时,拒绝新的连线。
 
MinBandWidth
格式: MinBandWidth ; <速率>;
预设: all 256
上下文: per directory, .htaccess
 
设定最小频宽,预设为每秒 256 位元组。根据 BandWidth 和 LargeFileLimit 设定的速
率。 mod_bandwidth 会计算允许的连线数。例如 BandWidth 为 4096 位元组,而
MinBandWidth 为 1024 位元组,则最大并发连线数为 4 。
 
Mod_limitipconn 选项简单说明:
 
;                         设定要控制的目录
MaxConnPerIP 2                      限制单 IP 并发连线数
NoIPLimit image/*                    不受限制的档案型别
;
;
MaxConnPerIP 1
OnlyIPLimit audio/mpeg video           仅用于限制的档案型别
;
 
顺便附上单位转换。
 
位(bit,简写:b)
位元组(Byte,简写:B);1Byte=8bit
 
千(Kilo,简写:K); x1,000
兆(Mega,简写:M); x1,000,000 =1000K
吉(Giga,简写:G); x1,000,000,000 =1000M
梯(     简写:T); x1,000,000,000,000 =1000G
 
由于计算机系统为二进位制演算法,实际进位为 1024,有时计算容量时又忽略小数字,记为 1000 进位。因此会出现显示位元组数和标称位元组数有差别。
 
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB