背景:
机器1 192.168.100.231, os: CentOS release3.6 (Final),装上apache2.3.6+mongrel cluster
机器2 192.168.100.234, os: CentOS release4.3 (Final) 装上 mongrel cluster
1)安装和配置mongrel_cluster
geminstallmongrel_cluster
cd # {your_rails_app_root}
mongrel_railscluster :: configure-eproduction-p4000-N4-c#{your_rails_app_root}-a127.0.0.1
cd # {your_rails_app_root}
mongrel_railscluster :: configure-eproduction-p4000-N4-c#{your_rails_app_root}-a127.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_railscluster
::
start
结果:
startingport
4000
startingport 4001
startingport 4002
startingport 4003
startingport 4001
startingport 4002
startingport 4003
停止
mongrel_railscluster
::
stop
结果:
stoppingport
4000
stoppingport 4001
stoppingport 4002
stoppingport 4003
stoppingport 4001
stoppingport 4002
stoppingport 4003
注意
上面的 配置过程并没有为mongrel_cluster产生特别的用户和组,如果你已非root身份登陆可能是需要的
2)安装apache2.2.6
cd
/
usr
/
local
wgethttp: // apache . mirror . phpchina . com / httpd / httpd- 2.2 . 6 . tar . gz
tarxvzfhttpd- 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&&makeinstall
wgethttp: // apache . mirror . phpchina . com / httpd / httpd- 2.2 . 6 . tar . gz
tarxvzfhttpd- 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&&makeinstall
由于apache2.2.6的配置文件中已经引入了
LoadModuleproxy_modulemodules
/
mod_proxy
.
so
LoadModuleproxy_http_modulemodules / mod_proxy_http . so
LoadModuleproxy_balancer_modulemodules / mod_proxy_balancer . so
LoadModuleproxy_http_modulemodules / mod_proxy_http . so
LoadModuleproxy_balancer_modulemodules / mod_proxy_balancer . so
所以你无需在配置文件加入这些
你的加上如下部分
<
Proxybalancer:
//
spacecluster
>
# clustermembers
BalancerMemberhttp: // 127.0 . 0.1 : 4000
BalancerMemberhttp: // 127.0 . 0.1 : 4001
BalancerMemberhttp: // 127.0 . 0.1 : 4002
BalancerMemberhttp: // 127.0 . 0.1 : 4003
BalancerMemberhttp: // 192.168 . 100.234 : 4000
BalancerMemberhttp: // 192.168 . 100.234 : 4001
BalancerMemberhttp: // 192.168 . 100.234 : 4002
BalancerMemberhttp: // 192.168 . 100.234 : 4003
</ Proxy >
ExtendedStatus On
< Location / server-status >
SetHandlerserver-status
</ Location >
< Location / balancer-manager >
SetHandlerbalancer-manager
</ Location >
< VirtualHost*: 80 >
ServerNamespace . mofile . com
ProxyRequests Off
ProxyPass / balancer-manager!
ProxyPass / server-status!
ProxyPass / balancer: // spacecluster /
ProxyPassReverse / balancer: // spacecluster /
</ VirtualHost >
# clustermembers
BalancerMemberhttp: // 127.0 . 0.1 : 4000
BalancerMemberhttp: // 127.0 . 0.1 : 4001
BalancerMemberhttp: // 127.0 . 0.1 : 4002
BalancerMemberhttp: // 127.0 . 0.1 : 4003
BalancerMemberhttp: // 192.168 . 100.234 : 4000
BalancerMemberhttp: // 192.168 . 100.234 : 4001
BalancerMemberhttp: // 192.168 . 100.234 : 4002
BalancerMemberhttp: // 192.168 . 100.234 : 4003
</ Proxy >
ExtendedStatus On
< Location / server-status >
SetHandlerserver-status
</ Location >
< Location / balancer-manager >
SetHandlerbalancer-manager
</ Location >
< VirtualHost*: 80 >
ServerNamespace . mofile . com
ProxyRequests Off
ProxyPass / balancer-manager!
ProxyPass / server-status!
ProxyPass / balancer: // spacecluster /
ProxyPassReverse / balancer: // spacecluster /
</ VirtualHost >
到此你的 apache+mongrel cluster就安装配置好了,你可以用浏览器访问apache看看是否生效了