日期:2014-05-17  浏览次数:20816 次

apache负载均衡配置

apache版本需要2.0以上

?

第一步,打开apache的相关模块


修改APACHE 的配置文件httpd.conf 打开以下模块,将之前的#取消即可

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

?

第二步,设置负载


ProxyRequests Off???
<Proxy balancer://myCluster>????
??? BalancerMember http://localhost:3000???? //我测试使用的是mongrel服务,可以换成其他tomcat等服务
??? BalancerMember http://localhost:3001?? ? //我测试使用的是mongrel服务,可以换成其他tomcat等服务
??? BalancerMember http://localhost:3002?? ? //我测试使用的是mongrel服务,可以换成其他tomcat等服务
</Proxy>

?

BalancerMember可以任意增加数量,目前未测试到底支持多少个

?

第三步,设置反向代理
<VirtualHost *:80>????
??? ServerName localhost
??? DocumentRoot d:/redmine-1.1.3/public/ //修改为自己的目录
????
??? ProxyPass / balancer://myCluster/???? //与负载上的名字保持一致
??? ProxyPassReverse / balancer://myCluster/??? //与负载上的名字保持一致
??? ProxyPreserveHost on???
</VirtualHost>??

?

设置完毕之后,重启服务器即可

?

测试时候,首先确保http://localhost:3000? 3001 3002端口的服务是开的,然后访问http://localhos,会均衡的负载导3个端口

?

?

?

?

1 楼 eleven_go 2011-11-18  
想问笔者,如果其中一个服务挂掉了,比如http://localhost:3000,那还会转发到这个服务吗?我们有没有什么方式来检测?
2 楼 jiaoronggui 2011-11-18  
eleven_go 写道
想问笔者,如果其中一个服务挂掉了,比如http://localhost:3000,那还会转发到这个服务吗?我们有没有什么方式来检测?

我也在想这个问题,前期光考虑增加并发,没考虑服务挂掉怎么办,吼起来做实验,有结果及时反馈