#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