apache + tomcat集群

1.首先安装apache,然后在httpd.conf配置文件最后加上:


ProxyRequests Off   #关闭正向代理,负载均衡器就是一个反向代理

ProxyPass /images !
ProxyPass /css !    # images, css, js直接处理
ProxyPass /js !

ProxyPass / balancer://chenghao/ lbmethod=bybusyness stickysession=JSESSIONID
<Proxy balancer://chenghao stickysession=JSESSIONID>
    BalancerMember ajp://localhost:8149 route=tomcat1 loadfactor=1
    BalancerMember ajp://localhost:8249 route=tomcat2 loadfactor=1
    BalancerMember ajp://localhost:8049 route=tomcat0 status=+H
</Proxy>

端口8149,8249,8049分别为tomcat的ajp端口。

端口为8049的tomcat为备份服务器,只需添加status=+H

stickysession实现的是会话级别的负载均衡。当前会话存在时session有效,关闭后session失效。

lbmethod 提供了三种负载方法,分别是byrequest、bytraffic、bybusyness
lbmethod=byrequests 按照请求次数均衡(默认)

lbmethod=bytraffic 按照流量均衡

lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)

route值要和tomcat配置文件server.xml的Engine标签的jvmRoute值相同。

loadfactor负载比例,现在2个tomcat为1:1。

最后在把LoadModule proxy_ 开头的#去掉。

LoadModule status_module 前的#去掉。

2.配置tomcat


server.xml 文件:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat0">

session管理是基于memcached-session-manager

首先要把memcached-session-manager-1.6.5.jar,memcached-session-manager-tc7-1.6.5.jar,spymemcached-2.8.12.jar,couchbase-client-1.1.4.jar,msm-kryo-serializer-1.6.5.jar,kryo-serializers-0.10.jar,kryo-1.04.jar,minlog-1.2.jar,reflectasm-1.01.jar,asm-3.2.jar 放到tomcat的lib下面。

安装memcached并运行。


context.xml:
<Manager 
  className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
  memcachedNodes="localhost:11211"  
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"  
/>

更多配置请到:memcached-session-manager

你可能感兴趣的:(apache,tomcat,memcached)