欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用apache web server做负载均衡搭建tomcat cluster 博客分类: 集群技术 mod_jkmod_proxytomcatcluster集群

程序员文章站 2024-03-16 15:13:10
...

搭建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/