此模塊適用于提供文件下載的網站,限制文件下載速度。
apache2必須以DSO模式安裝
下載bw_mod-0.6.gz
Http://apache.ivn.cl
Bandwidth Module
Module homepage at Http://apache.ivn.cl
下載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
<Directory "/var/www/html/soft">;
BandWidthModule On
BandWidth all 30720
</Directory>;
BandWidthModule On為啟用帶寬限制功能。
BandWidth all 30720第一個參數"all"為任何鏈接來源,第二個參數"30720"為限制帶寬為30KB。
詳細說明見bw_mod-0.6.txt
綁定寬度模塊(ON/OFF)(似乎翻譯成限制帶寬更好)
為使該模塊工作你需要設置為ON。缺省情況下模塊是不能工作的。也將不限制任何事情,
例如“BANDWIDTHMODULE ON
限制帶寬查錯[ON/OFF]
(缺省為OFF)當使其能工作時LOG將輸出大量數據塊到錯誤LOG,這些數據用于差錯目的,并且不是經常需要的,如果你很好奇你可以使其工作,但是注意這將使你的LOG增大很多,
例如:BANDWIDTHDEBUG ON
FORCEBANDWIDTHMODULE(ON|OFF)
缺省情況下。這一模塊將捕獲每一請求。這樣做的目的是更容易配置,如果你禁止了這一功能,你將不得不手工添加輸出過濾器,如果你只想讓某些需求被BW模塊處理這樣是有用的。
例如:FORCEBANDWIDTHMODULE OFF
ADD OUTPUTFILTERBYTYPE BW-MOD TEXT/HTML TEXT/PLAIN
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
MINBANDWIDTH[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的最高速度。
LARGEFILELIMIT[TYPE][MINIMUM SIZE][BYTES/S]
TYPE。是是一個文件的后綴部分。或者使用*代表所有類型文件,你可以使用TGZ只匹配TAR-CAMPRESSED文件,。匹配影音文件,或者*匹配所有類型文件。
MINIMUM SIZE,是要匹配文件的大小(用KBYTES表示),這一方法你可以用于一個可能堵塞你帶寬的巨大的影音文件。
最后一個參數不言自明:允許的速度
例如:LARGEFILELIMIT 。AVI 500 10240
這將限制一個大于(等于)500KB的影音文件以10KB/S的速度傳送。
-BANDWIDTHPACKET[SIZE]
大概你根本用不上這個,它的缺省值為8192,幾乎對任何速度都是合適的,
SIZE的大小必須在1024和131072之間,一個過小的包將引起最大速度減慢,模塊將用更多的時間分割文件,如果你使用過大的值,模塊將調整為更低的速度。
-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文檔
-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給我之前重新檢查你的配置。
FAQ
(無特別命令)
1 為什么使用BW—MOD
如果你要限制一個站點所能使用 的最大速度或者限制每站點允許的最大連接。或者只是實驗MOD
一些人告訴我。他們首先使用它來阻止小站點提供影音圖片或其他內容時堵塞他們所有帶寬。
2我應該怎么做
首先。閱讀文檔。如果你不能使其工作。或者你想詢問更多特性。請訪問主頁。并且提交請求。集注閱讀文檔和FAQ。如果請求已經提交。我將馬上刪除副本。
3(略)
4 它是怎么工作的
這個模塊設置一個你設置的配制所占有的共享內存。在這一空間它也存儲當前使用的信息的計數(象當前連接,使用的BW,時間。發送的字節等)
當你設置了一個BW限制。這個模塊將進行數據分割。并且分段傳送數據。在每段之間有一個小的延遲。這個延遲將被調整以在每一秒至少傳送一段數據
posted on 2008-09-16 10:43
藍劍 閱讀(545)
評論(0) 編輯 收藏