背景:
机器1 192.168.100.231, os: CentOS release 3.6 (Final),装上apache2.3.6+mongrel cluster
机器2 192.168.100.234, os: CentOS release 4.3 (Final) 装上 mongrel cluster
1)安装和配置mongrel_cluster
gem install mongrel_cluster
cd # {your_rails_app_root}
mongrel_rails cluster :: configure -e production -p 4000 -N 4 -c #{your_rails_app_root} -a 127.0.0.1
cd # {your_rails_app_root}
mongrel_rails cluster :: configure -e production -p 4000 -N 4 -c #{your_rails_app_root} -a 127.0.0.1
上面命令在#{your_rails_app_root}/config产生如下配置文件mongrel_cluster.yml
内容如下:
cwd: #
...
{your_rails_app_root}
log_file: log / mongrel.log
port: " 4000 "
environment: production
address: 127.0 . 0.1
pid_file: tmp / pids / mongrel.pid
servers: 4
log_file: log / mongrel.log
port: " 4000 "
environment: production
address: 127.0 . 0.1
pid_file: tmp / pids / mongrel.pid
servers: 4
上面已经安装和配置好mongrel_cluster,开始启动和停止试试
启动:
mongrel_rails cluster
::
start
结果:
starting port
4000
starting port 4001
starting port 4002
starting port 4003
starting port 4001
starting port 4002
starting port 4003
停止
mongrel_rails cluster
::
stop
结果:
stopping port
4000
stopping port 4001
stopping port 4002
stopping port 4003
stopping port 4001
stopping port 4002
stopping port 4003
注意
上面的 配置过程并没有为mongrel_cluster产生特别的用户和组,如果你已非root身份登陆可能是需要的
2)安装apache2.2.6
cd
/
usr
/
local
wget http: // apache . mirror . phpchina . com / httpd / httpd- 2.2 . 6 . tar . gz
tar xvzf httpd- 2.2 . 6 . tar . gz
cd httpd- 2.2 . 6
./ configure --prefix =/ usr / local / apache2 . 2.6
--enable-proxy = shared
--enable-proxy_http = shared
--enable-proxy-balancer = shared
make && make install
wget http: // apache . mirror . phpchina . com / httpd / httpd- 2.2 . 6 . tar . gz
tar xvzf httpd- 2.2 . 6 . tar . gz
cd httpd- 2.2 . 6
./ configure --prefix =/ usr / local / apache2 . 2.6
--enable-proxy = shared
--enable-proxy_http = shared
--enable-proxy-balancer = shared
make && make install
由于apache2.2.6的配置文件中已经引入了
LoadModule proxy_module modules
/
mod_proxy
.
so
LoadModule proxy_http_module modules / mod_proxy_http . so
LoadModule proxy_balancer_module modules / mod_proxy_balancer . so
LoadModule proxy_http_module modules / mod_proxy_http . so
LoadModule proxy_balancer_module modules / mod_proxy_balancer . so
所以你无需在配置文件加入这些
你的加上如下部分
<
Proxy balancer:
//
spacecluster
>
# cluster members
BalancerMember http: // 127.0 . 0.1 : 4000
BalancerMember http: // 127.0 . 0.1 : 4001
BalancerMember http: // 127.0 . 0.1 : 4002
BalancerMember http: // 127.0 . 0.1 : 4003
BalancerMember http: // 192.168 . 100.234 : 4000
BalancerMember http: // 192.168 . 100.234 : 4001
BalancerMember http: // 192.168 . 100.234 : 4002
BalancerMember http: // 192.168 . 100.234 : 4003
</ Proxy >
ExtendedStatus On
< Location / server-status >
SetHandler server-status
</ Location >
< Location / balancer-manager >
SetHandler balancer-manager
</ Location >
< VirtualHost *: 80 >
ServerName space . mofile . com
ProxyRequests Off
ProxyPass / balancer-manager !
ProxyPass / server-status !
ProxyPass / balancer: // spacecluster /
ProxyPassReverse / balancer: // spacecluster /
</ VirtualHost >
# cluster members
BalancerMember http: // 127.0 . 0.1 : 4000
BalancerMember http: // 127.0 . 0.1 : 4001
BalancerMember http: // 127.0 . 0.1 : 4002
BalancerMember http: // 127.0 . 0.1 : 4003
BalancerMember http: // 192.168 . 100.234 : 4000
BalancerMember http: // 192.168 . 100.234 : 4001
BalancerMember http: // 192.168 . 100.234 : 4002
BalancerMember http: // 192.168 . 100.234 : 4003
</ Proxy >
ExtendedStatus On
< Location / server-status >
SetHandler server-status
</ Location >
< Location / balancer-manager >
SetHandler balancer-manager
</ Location >
< VirtualHost *: 80 >
ServerName space . mofile . com
ProxyRequests Off
ProxyPass / balancer-manager !
ProxyPass / server-status !
ProxyPass / balancer: // spacecluster /
ProxyPassReverse / balancer: // spacecluster /
</ VirtualHost >
到此你的 apache+mongrel cluster就安装配置好了,你可以用浏览器访问apache看看是否生效了