lx86 发表于 2017-1-8 09:50:31

用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/
页: [1]
查看完整版本: 用apache web server做负载均衡搭建tomcat cluster