歡迎您光臨本站 註冊首頁

求助:如何在apache動態虛擬主機配置下實現帶寬控制?

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

求助:如何在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不出來方案了,請大家指教。

[火星人 ] 求助:如何在apache動態虛擬主機配置下實現帶寬控制?已經有642次圍觀

http://coctec.com/docs/service/show-post-24067.html