免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1760 | 回复: 0
打印 上一主题 下一主题

[Web] 求助:如何在apache动态虚拟主机配置下实现带宽控制? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-05 20:58 |只看该作者 |倒序浏览
系统环境:apache2.2/FreeBSD 7.1

为管理虚拟主机,采用了mod_rewrite动态方式配置,具体如下:


  1. UseCanonicalName Off

  2. NameVirtualHost *:80
  3. <VirtualHost *:80>
  4. RewriteEngine on
  5. RewriteMap lowercase int:tolower
  6. RewriteMap vhost txt:etc/apache22/vhosts.map
  7. RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
  8. RewriteCond ${vhost:%1} ^(.*)$
  9. RewriteRule ^/(.*)$ %1/$1
  10. </VirtualHost>
复制代码


所有诸如vhost1.abc.com请求都会被重写到vhosts.map中定义的目录中去。

现在我想为这些动态的虚拟主机统一配置带宽(针对每个生效),使用过mod_cband和mod_bw,但都不能像理想的情况那样运行。

*mod_cband:
在上述vhost配置指令中添加:

  1. <VirtualHost>
  2. ...
  3. <IfModule mod_cband.c>
  4. CBandLimit 6G
  5. CBandPeriod 4W
  6. CBandPeriodSlice 1W
  7. CBandSpeed 200kbps 10 30
  8. CBandExceededSpeed 128kbps 5 15
  9. CBandScoreboard /var/www/scoreboard/scoreboard
  10. </IfModule>
  11. </VirtualHost>
复制代码

但实际上,这样定义的结果并不是对每个vhost限制200kbps (CBandSpeed 200kbps 10 30),
而是限制了所有的动态vhost总的带宽为200kbps,比如有5个vhost同时被访问,各自就只有40kbps了。

*mod_bw:
在上述vhost配置指令中添加:

  1. <VirtualHost>
  2. ...
  3. BandWidthModule On
  4. ForceBandWidthModule On
  5. BandWidth all 50000
  6. MinBandWidth all 40000
  7. MaxConnection all 2
  8. </VirtualHost>
复制代码

像cband一样,这样的设置也不能对每个动态虚拟主机单独生效。

难道非要对每个vhost单独写<VirtualHost></VirtualHost>指令,然后在其中定义带宽。

有没有可能在动态vhost定义的情况下,实现对每个vhost的带宽定义呢?

实在google不出来方案了,请大家指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP