用apache web server做负载均衡搭建tomcat cluster

搭建tomcat集群时,做负载均衡主要有两种方式。

1.利用apache作负载均衡,使用JK native connector,用ajp协议连接tomcat server

2.使用反向代理技术实现负载均衡,这种技术可使用的方式就很多了,只要是支持反向代理的软件都可以使用。比如可以使用apache的proxy模块,也可以使用nginx。但nginx现在还没有对sticky session提供一个完善的支持。而apache proxy这方面就相当完善了。

注意:在使用第一种方式时,如果利用到了tomcat commet机制实现与客户端的长连接,则会出现问题,出现405错误。因为commet使用了APR 或者 NIO HTTP connectors,而不支持经典的http或者ajp,所以使用jk native connector就出现错误了。

相比较而言反向代理技术更加通用,且灵活,可以实现许多形式的负载均衡。这里把我配置apache proxy的过程记录下来。

首先把proxy模块编译进apache

1.下载apache源代码。

2.配置编译选项:

./configure --prefix=/opt/apache2 --enable-proxy --enable-proxy-balancer --enable-proxy-connect --enable-proxy-http --enable-rewrite
 

3.编译安装:

make && make install

 4.配置httpd:

    加入以下配置

 #stickysession方式

ProxyPass / balancer://webos/ stickysession=JSESSIONID|jsessionid
#用以解决反向代理重定向问题
ProxyPassReverse / balancer://webos/
<Proxy balancer://webos>
#两台节点机配置,route即server.xml中的jvmRoute值
BalancerMember http://localhost:11080/ loadfactor=10 route=tomcat1
BalancerMember http://localhost:12080/ loadfactor=10 route=tomcat2
</Proxy>
 

 5.启动tomcat,启动apache,这样一个简单的集群就搭建好了。

参考:

http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html#proxypass

http://www.wellho.net/mouth/2482_Load-balancing-with-sticky-sessions-httpd-Tomcat-.html

http://tomcat.apache.org/tomcat-6.0-doc/

猜你喜欢

转载自gmlove.iteye.com/blog/1164458