mod-cband (apache 的速度管理)

更新時間: 2018-11-19

介紹

由於 apache 本身沒有速度限制功能,

那就要靠額外的 module 去補足此必要的功能

libapache2-mod-cband 就是其中選擇之一

而且它可以做到

  • per-user bandwidth limiting
  • per-virtualhost bandwidth limiting
  • per-destination bandwidth limiting
     

安裝:

apt-get install libapache2-mod-cband

 

啟用此功能:

a2enmod  cband

 

cband configure:

在 cband.conf 內加入以下設定

######### Cband ###########
CBandScoreFlushPeriod 100
# 滿 100 個 reguest 才將下載記錄寫入 Scoreboard 作統計用
#
CBandRandomPulse on
# 用不是 100% 準確的限速
#########################

在 Virtual-host 加入設定:
( /etc/apache2/sites-available/datahunter.org )

 

####### Cband ########
#
CBandSpeed 500kb/s 40 50
CBandRemoteSpeed 120kb/s 10 3
# 此 Virtual-host 的總速度是 500kbyte/s , 40request/s 及 50個connection
# 而每顆 ip 最快只有 80 kb/s ( 不論有幾多個 connection )
# 每秒最可以有 10 個 requests
# 最多只可有 3 connection

CBandExceededURL http://datahunter.org/traffic_exceeded.html
# 當已沒有流量可用時, 只會顯示以上網頁, 不能再 download

CBandScoreboard /var/www/Scoreboard/datahunter.org
# 網絡用量的記錄位置

CBandPeriod 1W
CBandLimit 7G
CBandPeriodSlice 14
CBandExceededSpeed 30kb/s 4 2
# 統計會以 1 星期作單位, 總共有 7 GB 流量, 並把它分成 14 等份
# 所以每日有 1 GB 流量(上下午),
# 當 over 了時, 速度就會降到 30kb/s, 4 re及只可有 2 connection
########################

在 default 的 virtual host 加上以下 config

# 令只有 192.168.0.0/16 的 ip 可以看 status
# 由於 datahuter.org 開了 RewriteEngine,
# 所以 Location 唔能夠正常運作, 唯有另開 virtual host 看 status  .............

######## cband status ########
<IfModule mod_cband.c>
    <Location /cband-status>
        SetHandler cband-status
        Order deny,allow
        Deny from all
        Allow from 192.168.0.0/255.255.0.0
    </Location>
    <Location /cband-status-me>
        SetHandler cband-status-me
        Order deny,allow
        Deny from all
        Allow from 192.168.0.0/255.255.0.0
    </Location>
</IfModule>
#########################

 

查看 status

http://192.168.1.1/cband-status

 

 

PS

單位:
K=1000, Ki=1024
kbps=bit, kb/s= byte

 


Flashget 下載情況

# 雖然有 3 個 connection, 但總速度仍在 120Kb/s 左右 ~

 

 

Creative Commons license icon Creative Commons license icon