的確,透過 HTTP 感覺比 FTP 還方便些,尤其是一些不大的檔案時~不過一堆人同時來下載時,上傳頻寬都被吃光了.....@_@
再者,FTP 可以限制流量耶! HTTP 可以嗎? 當然也可以,這篇要介紹的就是在 Apache 中用來支援流量管制的模組「cband」,有了此模組,就可以用 VirtualHost 或是 User 為單位來進行網路流量的管控了
以下的環境是在 Ubuntu 6.10 上實作的喔!
安裝:
安裝部分相當簡單,只要下達以下指令:
shell> sudo apt-get -y install libapache2-mod-cband這樣就安裝好了,不得不令人再次佩服 Ubuntu 的套件支援實在強大.....
設定:
有別於其他的 distribution 將 Apache 設定都放置於 httpd.conf 中, Ubuntu 中的 Apache 設定都已經「模組化」了!在設定的部分就有幾個地方需要注意的囉! 以下一一說明:
1、模組設定
一般的 distribution 會將所有支援的 module 放在一個目錄中,而在 Ubuntu 中,他會將支援的 module 與啟用的 module 分開放,分別置於以下兩個目錄:
- /etc/apache2/mods-available (支援的 module)
- /etc/apache2/mods-enabled (啟用的 module)
# 每個 module 都有兩個檔案需要 link 喔!
shell> sudo ln -s /etc/apache2/mods-available/cband.conf /etc/apache2/mods-enabled/cband.conf
shell> sudo ln -s /etc/apache2/mods-available/cband.load /etc/apache2/mods-enabled/cband.load
2、啟用 cband
接著在 /etc/apache2/apache2.conf (或是在 httpd.conf) 中加入以下兩行設定:
CBandScoreFlushPeriod 1如此一來,Apache server 重新啟動時便可以啟用 cband 的流量限制功能。
CBandRandomPulse On
3、流量限制設定
最後我們要限制某個 VirtualHost 的流量,可以在 <VirtualHost> 標籤中加入以下設定: (更詳細的介紹與教學可參考官方網站)
# 限制 VirtualHost 整體
# 每秒最大頻寬為 1024 KB
# 每秒最多接收 10 個 request
# 每秒最多 30 個 connection
CBandSpeed 1024 10 30
# 限制每個遠端 IP
# 每秒最大頻寬為 100KB
# 每秒最多 5 個 request
# 每秒最多 10 個 connection
CBandRemoteSpeed 100kb/s 5 10
最後重新啟動 Apache server 即可。
參考資料:
沒有留言:
張貼留言