#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