返回   ShareGet 社群討論 > ≡ 電腦網路 ≡ > □ -- Unix & Linux

發表新主題 回覆
 
主題工具 顯示模式
  #1  
舊 2006-07-27, 12:42 PM
bojack 的頭像
Orz
 
註冊日期: 2004-06-08
文章: 1,801
給予: 31 | 感謝 46 | 共 12 篇
積分: 9457 | 給分能力: 43
[原創] Apache 限制流量 How To

原文連結:有為青年生活札記 Apache 限制流量 How To

在酷學園總是能看到一些有趣的問題!

這篇由永遠學不會所提問的問題,老闆問他在 Apache 裡有沒有辦法限制每個 user 的流量限制 ? 若問我的話一定掛在那,這個問題我倒是從來沒有想過 ~ 今晚就來實作一下

在 Apache 上要做到流量限制的套件有 mod_bandwidth 、 mod_throttle 與 mod_cband ~

前二個適用於 Apache 1.3.x 版本,不過我升級到 Apache 2.x 很久了,所以前二個套件就不研究了。取而代之在 Apache 2 可以 work 的套件就是 mod_cband

引用一下 The FreeBSD Ports Archive mod_cband 這篇文章:

引用:
mod_cband is an Apache 2 module provided to solve the problem of limiting virtualhosts bandwidth usage. When the configured virtualhost’s transfer limit is exceeded, mod_cband will redirect all further requests to a location specified in the configuration file.
大概了解一下後,就可以開始來安裝套件 ~

連結上 mod_cband 的網站,目前最新的版本是 0.9.7.4 STABLE。Downalod 下來後解開,可以稍微看一下 INTSALL 來安裝,蠻簡單的 ~ 由於我的 Apache 一直都是以 tarball 的方式來安裝,所以這裡也用 tarball 的方式來安裝囉,或許用 ports 來安裝更快吧

引用:
Shell> tar zxvf mod-cband-0.9.7.4.tgz
Shell> cd mod-cband-0.9.7.4
Shell> ./configure –with-apxs=/www/bin/apxs
Shell> make;make install;make clean
好了之後可以檢查一下 httpd.conf 有沒有多一行
引用:
LoadModule cband_module modules/mod_cband.so
重開 Apache 後再利用 phpinfo 去檢查一下有沒有載入 ~

接下來是設定的部份,可參考 Manage Apache Download Speed And Traffic Limits With mod_cband 這篇文章喔 !! 利用網站的範例來做解釋好了

假設目前我有一個 URL 叫 www.bojack.com,IP 是 1.2.3.4,在電腦裡的檔案路徑為 /var/www

首先我們先在 httpd.conf 加入二行設定,可以用來改善 mod_cband 的效能
引用:
# mod_cband
CBandScoreFlushPeriod 1
CBandRandomPulse On
另外我們可以先增加一個目錄用來計算 mod_cband 所使用的情況,這部稍後會說明,還蠻有趣的
引用:
mkdir /var/www/scoreboard
chown apache:apache /var/www/scoreboard/
Example 1 :
引用:
<VirtualHost 1.2.3.4>
ServerName www.bojack.com
ServerAdmin bojack@bojack.com
DocumentRoot /var/www
CBandSpeed 1024 10 30
CBandRemoteSpeed 20kb/s 3 3
</VirtualHost>
CBandSpeed 的部份是指所有總連線速率最大為1024kbps,每秒最多只能有10個連線,Total的連線數最大為30。

CBandRemoteSpeed是限制每一個獨立的連線速率最大為20kbps,後面的 3 3 還不太清楚在幹嘛 @@?

設定好之後就可以重開 Apache 來測試一下 ~ 我放了一個 5mb 的檔案下載,嗯,果然傳輸速度會慢慢被限制在 20 k 左右


Example 2.
引用:
<VirtualHost 1.2.3.4>
ServerName www.bojack.com
ServerAdmin bojack@bojack.com
DocumentRoot /var/www
CBandLimit 100M
CBandExceededSpeed 128 5 15
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
</VirtualHost>
這個範例就有趣多了,是限制 www.bojack.com 這個站每個月的流量限製為 100MB,當超出這個流量後,就限製為 128 kbps,相對的 max requests per second 變成 5,max open connections 變為 15,還記得一開始要求建立 scoreboard 這個目錄吧,原來它就是用來計算用的!至於 CbandPeriod 4W 就是指四個星期,就是一個月啦!
Example 3.
引用:
<VirtualHost 1.2.3.4>
ServerName www.bojack.com
ServerAdmin webmaster@bojack.com
DocumentRoot /var/www
CBandLimit 100M
CBandExceededURL http://www.bojack.com/traffic_exceeded.html
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
</VirtualHost>
這個範例看起來和上面那個很像,不過就是當流量超過 100MB 時,就會顯示 traffic_exceeded.html 通知使用者說你這個流量已超出限制了 ~ 了解吧
Example 4.
引用:
<VirtualHost 1.2.3.4>
ServerName www.bojack.com
ServerAdmin bojack@bojack.com
DocumentRoot /var/www
CBandLimit 100M
CBandExceededSpeed 128 5 15
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W

<Location /cband-status>
SetHandler cband-status
</Location>
<Location /cband-status-me>
SetHandler cband-status-me
</Location>
</VirtualHost>
這個範例可以讓使用者稍微了解一下自己所使用的流量情況囉 ~ 以這範例為例,鍵入 http://www.bojack.com/cband-statushttp://www.bojack.com/cband-status-me 即可


[1] mod_cband
[2] 讓 mod_cband 在某些條件下不設限
[3] Manage Apache Download Speed And Traffic Limits With mod_cband
[4] [問題]Apache 有辦法限制流量嗎?
[5] apache 限制下載流量與連線數
[6] mod_bandwidth

此文章於 2007-04-30 09:47 AM 被 bojack 編輯.
回覆時引用此文章
  #2  
舊 2006-07-27, 08:30 PM
超級會員
 
註冊日期: 2004-05-30
文章: 351
給予: 0 | 感謝 0 | 共 0 篇
積分: 244 | 給分能力: 20
這篇文章很有深度喔,原來Apache也可以用來限制流量呀,得花點時間好好來研究一下
__________________
壓縮能力一流還支援unicode的7-zip(自由軟體)
製作MP3、FLAC和APE的好工具Exact Audio Copy(EAC)
簡潔有力不佔用系統資源的螢幕擷取軟體FastStone Capture
回覆時引用此文章
  #3  
舊 2006-07-27, 10:14 PM
終極會員
 
註冊日期: 2004-10-19
來自: 時間與空間的狹小裂縫
文章: 506
給予: 2 | 感謝 0 | 共 0 篇
積分: 553 | 給分能力: 19
用Apache 作流量限制 @@? 果然一點也沒想過這問題~~
感謝版大的教學 得好好研究一番 ^ ^
__________________
興趣何在??....
回覆時引用此文章
  #4  
舊 2006-07-28, 10:41 AM
元老級
 
註冊日期: 2004-07-14
文章: 3,729
給予: 6 | 感謝 33 | 共 23 篇
積分: 5184 | 給分能力: 40
很有趣的問題,感謝大大的分享,又讓我學到一招了。
回覆時引用此文章
發表新主題 回覆

書簽

主題工具
顯示模式

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用
論壇跳轉


所有時間均為GMT -5。現在的時間是 11:25 AM


Powered by vBulletin® Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.