緣起
在架設網站實務上,常會遇到希望知道主機上網站使用的頻寬或是流量等資訊,不論是客戶純粹想藉由此資訊來了解這個網站是否真的"有用",或是拿來當作所支付的頻寬/流量費用是否有達到實際使用量的參考。通常頭一個想到的就是mrtg(可參考鳥哥的網站很詳細)這個模組,架設簡單且在需求不是那麼高的情況下,是很好用。但由於 MRTG 是透過 snmp 協定去統計,也就是單一主機上的網路卡去做偵測及統計。如果一台主機上有好幾個虛擬網站(VirtualHost)的話,MRTG就比較難針對單一網站做統計。因此這個時候可以利用Apache 2 的模組 mod_cband,mod_cband是一種頻寬限制模組,他除了可以針對單一主機上各虛擬網站去限制頻寬以免流量爆掉,本身也提供了頻寬數據的表格可參考。現在就讓我們看看如何開始使用mod_cband吧!
安裝mod_cband
這裏使用tarball的安裝方式。先下載mod_cband,目前版本為0.9.7.5,下載點按此。在Linux指令列下可以下指令::
wget http://fresh.t-systems-sfr.com/unix/privat/mod-cband-0.9.7.5.tgz
然後解壓縮
tar -zxvf mod-cband-0.9.7.5.tgz
開始安裝(這裡以系統已安裝apsx 或 apsx2 來做範例 )
cd mod-cband-0.9.7.5
./configure
make
make install
很簡單吧!就是一般的編譯與安裝,安裝完畢會自動在apache的設定檔httpd.conf中寫入以下訊息:
LoadModule cband_module /usr/lib64/httpd/modules/mod_cband.so
至此安裝完畢,記得要重新啟動apache。
設定mod_cband
那麼我們要如何去針對網站去限制頻寬以及查看統計圖表呢?以下舉實例來說明。開啟 /etc/httpd/conf/httpd.conf 來編輯:
<VirtualHost VirtualHost *:80>
ServerName www.example.com.tw
ServerAdmin admin@example.com.tw
DocumentRoot /var/www/www.example.com.tw
#限制此VirtualHost最高頻寬速度 1024kbps、每秒最高接受請求(request)數 200 個 、最高每秒連接(connection)數 200 個
CBandSpeed 1024 200 200
#限制來自遠端訪問單一ip最高頻寬速度512kbps,每秒最高30個請求(request),最高每秒30個連接(connection)數。
CBandRemoteSpeed 512 30 30
#設定多久對所記錄的全域頻寬紀錄進行重設(refresh) 4W=4weeks(4週)(一個月)
CBandPeriod 4W
#開啟 mod_cband 的即時監看功能(查看整台主機),可以透過 http://server_name/cband-status 進行觀查。 #設定瀏覽http://server_name/cband-status的權限 </Location> <Location /cband-status-me> #開啟 mod_cband 的即時監看功能(查看單一VirtualHost),可以透過 http://server_name/cband-status-me 進行觀查。 #設定瀏覽http://server_name/cband-status-me的權限 </Location> </VirtualHost> 設定完畢記得存檔後還是一樣重新啟動apache,如此就開始使用了。
<Location /cband-status>
SetHandler cband-status
Order allow,deny
Allow from 127.0.0.1/32 10.1.1.0/24
SetHandler cband-status-me
Order allow,deny
Allow from 127.0.0.1/32 10.1.1.0/24
結論
網路其實有很多網站頻寬限制或是監控的模組工具可使用,像ntop或是cacti都是很常見的工具。mod_cband也是筆者認為安裝簡單且設定上很直覺的工具之一,不妨試用看看!
參考網站
http://www.adj.idv.tw/html/75/t-1675.html
http://www.redmaple.idv.tw/index.php/archives/164 (Debian上安裝 mod_cband)
留言列表