Chinaunix
标题:
求助:如何在apache动态虚拟主机配置下实现带宽控制?
[打印本页]
作者:
bingump
时间:
2009-03-05 20:58
标题:
求助:如何在apache动态虚拟主机配置下实现带宽控制?
系统环境:apache2.2/FreeBSD 7.1
为管理虚拟主机,采用了mod_rewrite动态方式配置,具体如下:
UseCanonicalName Off
NameVirtualHost *:80
<VirtualHost *:80>
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:etc/apache22/vhosts.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(.*)$
RewriteRule ^/(.*)$ %1/$1
</VirtualHost>
复制代码
所有诸如vhost1.abc.com请求都会被重写到vhosts.map中定义的目录中去。
现在我想为这些动态的虚拟主机统一配置带宽(针对每个生效),使用过mod_cband和mod_bw,但都不能像理想的情况那样运行。
*mod_cband:
在上述vhost配置指令中添加:
<VirtualHost>
...
<IfModule mod_cband.c>
CBandLimit 6G
CBandPeriod 4W
CBandPeriodSlice 1W
CBandSpeed 200kbps 10 30
CBandExceededSpeed 128kbps 5 15
CBandScoreboard /var/www/scoreboard/scoreboard
</IfModule>
</VirtualHost>
复制代码
但实际上,这样定义的结果并不是对每个vhost限制200kbps (CBandSpeed 200kbps 10 30),
而是限制了所有的动态vhost总的带宽为200kbps,比如有5个vhost同时被访问,各自就只有40kbps了。
*mod_bw:
在上述vhost配置指令中添加:
<VirtualHost>
...
BandWidthModule On
ForceBandWidthModule On
BandWidth all 50000
MinBandWidth all 40000
MaxConnection all 2
</VirtualHost>
复制代码
像cband一样,这样的设置也不能对每个动态虚拟主机单独生效。
难道非要对每个vhost单独写<VirtualHost></VirtualHost>指令,然后在其中定义带宽。
有没有可能在动态vhost定义的情况下,实现对每个vhost的带宽定义呢?
实在google不出来方案了,请大家指教。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2