mod_cband是一个通过apache 2模块来解决限制用户和虚拟主机带宽问题的应用,当前版本可以调整虚拟主机和用户带宽限额,最高下载速度(like in mod_bandwidth),每秒访问请求速度和最高并发访问ip连接数(like in mod_limitipconn)。
"我告诉虚拟主机服务商使用mod_cband,想要限制他们用户数据传输,像“每月10 Gb流量”这样。但已有了mod_curb模块,可以限制流量,但无法工作在虚拟主机和Apache 2下,所以我写了自己的模块完全适合于Apache 2 API同时支持每用户和每虚拟主机带宽限制。"(此段翻译自官方网站)
官网下载地址:http://codee.pl/cband.html或 http://codee.pl/download/cband/
# wget http://codee.pl/download/cband/mod-cband-0.9.7.5.tgz
# tar zxvf mod-cband-0.9.7.5.tgz
# cd mod-cband-0.9.7.5
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install 在httpd.conf里增加如下:(注:我这里的数值仅仅作为测试)
NameVirtualHost 192.168.1.177:80
<VirtualHost 192.168.1.177:80>
DocumentRoot /usr/local/apache/htdocs/www.hcy.cn/
DirectoryIndex index.html index.htm index.php
ServerName www.hcy.cn
ErrorLog logs/www.hcy.cn-error_log
CustomLog logs/www.hcy.cn-access_log common
CBandLimit 10M # 限制虚拟主机总访问带宽(流量)为10Mb。
# transfer quotas:
# K, M, G - multiples of bytes, respectively: 1000, 1000*1000 and 1000*1000*1000 bytes
# Ki, Mi, Gi - multiples of bytes, respectively: 1024, 1024*1024 and 1024*1024*1024 bytes
# defaults to K
CBandSpeed 1024 10 3
# 限制此虚拟主机最高访问速度1024kbps
# 限制此虚拟主机每秒最高接受请求数10个
# 限制此虚拟主机最高并发连接30个
# transfer speeds:
# kbps, Mbps, Gbps - multiples of "bits per second", respectively: 1024, 1024*1024 and 1024*1024*1024 bps
# kb/s, Mb/s, Gb/s - multiples of "bytes per second", respectively: 1024, 1024*1024 and 1024*1024*1024 b/s
# defaults to kbps
# Kbps:首先要了解的是,ps指的是/s,即每秒。Kbps又称比特率,指的是数字信号的传输速率,也就是每秒钟传送多少个千位的信息(K表示千位,Kb表示的是多少千个位);Kbps也可以表示网络的传输速度,为了在直观上显得网络的传输速度较快,一般公司都使用kb(千位)来表示,如果是 KBps,则表示每秒传送多少千字节。1KByte/s=8Kbps(一般简写为1KB/s=8Kbps)。ADSL上网时的网速是512Kbps,如果转换成字节,就是512/8=64KBps(即64千字节每秒)。
CBandRemoteSpeed 10kb/s 3 2 # 限制来自远端访问速度10kB每秒,3个请求每秒,2个连接。
CBandPeriod 4W # 设定多久对所记录的全局访问带宽进行重设(清零)。4W=4 weeks 4周(一个月)
# time periods:
# S, M, H, D, W - multiples of seconds: Seconds, Minutes, Hours, Days, Weeks; respectively: 1, 60, 3600, 86400, 604800 seconds
# defaults to S
<Location /cband-status>
SetHandler cband-status
</Location>
# 开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status进行直观的观测。(全局监测)
<Location /cband-status-me>
SetHandler cband-status-me
</Location>
# 开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status-me进行直观的观测。(单一监测)
</VirtualHost>
#(注:如不限制并发,填写数字0即可。)
以下是测试结果:
客户端限制了最大10kB每秒。客户端限制了最大2个并发,只有2个线程在下载,另3个报错。虚拟主机限制了10M流量,各阶段图的颜色均不同,超过10M流量以后,页面打开就报错了。从另一台机器访问,也同样报错。
|