當 Apache 其中一個 Virtual Host 佔用資源過多時,會拖慢整台伺服器所有網站的速度,這時可以安裝 mod_cband 模組,限制個別虛擬主機可以佔用的連線數量及頻寬,以下會示範在 CentOS 7 安裝 mod_cband 模組:
要安裝 mod_cband,需要先安裝 httpd-devel:
# yum install httpd-devel
然後可以下載 mod_cband 及編譯安裝:
# cd /usr/local/src
# wget https://github.com/maiha/mod_cband/archive/master.zip
# unzip master.zip
# wget https://github.com/maiha/mod_cband/archive/master.zip
# unzip master.zip
現在編譯安裝:
# cd mod_cband-master
# ./configure
# make && make install
# ./configure
# make && make install
這時 mod_cband 已經安裝好,只要修改 VirtualHost 的設定,及重新啟動 Apache 便可以,例如:
1 2 3 4 5 6 7 |
<virtualhost *:80=""> ServerName www.mydomain.com DocumentRoot /var/www/www.mydomain.com ServerAlias mydomain.com CBandSpeed 1024 150 150 CBandRemoteSpeed 512 3030 </virtualhost> |
以上的 CBandSpeed 及 CBandRemoteSpeed 兩個是 mod_cband 的設定,意思分別是:
CBandSpeed 1024 150 150:
限制 VirtualHost 最高可用頻寬 1024kbps, 每秒可接受 150 個請求,及 150 個連線數。
CBandRemoteSpeed 512 3030:
限制 VirtualHost 下遠端某一 IP 最高可用頻寬 512kbps, 每個 IP 每秒可接受 30 個請求,及 0 個連線數。
設定後重新啟動 Apache 便完成了:
# systemctl restart httpd