apache+tomcat 集群技术 (负载均衡以及session同步)

最近研究下 apache+tomcat 集群 ,
总的来说有两种方式 1 proxy 2 mod_jk 其中 proxy中具体也分了balance,其实mod_jk如果workers.properties不配置负载均衡也就是实现简单的转发。
总的来说支持协议也是两种 1 http 2 ajp
协议可自由选择
先看第一种方式 比较简单
一 proxy 方式
1 首先开启apache的proxy模块 ,具体如下
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

我直接搜索了proxy copy to here. 如果不用ajp 可不开启

2 在apahce中 配置 代理成员
ProxyPass / balancer://proxyTest/ 
<Proxy balancer://proxyTest>
  BalancerMember http://127.0.0.1:8081/ loadfactor=1 
  BalancerMember http://127.0.0.1:8082/ loadfactor=1 
</Proxy>

注意 ProxyPass 后的 /为根目录 如果有虚拟目录可配置 proxyTest 是你balancer的名字,对应即可,千万注意  member里千万别加注释 ## 我加了注释后居然报错
BalancerMember can not have a balancer name when defined in a location

loadfactor 为权重值1-100 其实也就是分配的概率 ,直接分配了2个tomcat
完后重启apache 通过浏览器测试发现 8081 和8082 交替出现 ,当然这里也可支持ajp协议,感兴趣的可以试试
二 mod_jk 方式
1 首先配置 mod_jk-1.2.31-httpd-2.2.3.so 模块
此模块 默认apache 并未支持 需要我们自己安装下载地址如下
http://zucou.com/download/mod_jk-1.2.31-httpd-2.2.3.rar

2 在apache中配置引入mod_jk.conf和httpd.conf同一目录即可
# 负载均衡转发
Include "conf/mod_jk.conf"

3 在mod_jk.conf中 配置 引入模块和配置文件
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.* controller

4 将需要转发已经负载的tomcat配置在workers 中
#server 
worker.list = controller 

#========tomcat8081======== 
worker.tomcat8081.port=8009 
worker.tomcat8081.host=127.0.0.1 
worker.tomcat8081.type=ajp13 
worker.tomcat8081.lbfactor = 1 

#========tomcat8082======== 
worker.tomcat8082.port=8010 
worker.tomcat8082.host=127.0.0.1 
worker.tomcat8082.type=ajp13 
worker.tomcat8082.lbfactor = 1 

#========controller,负载均衡控制器======== 
worker.controller.type=lb 
worker.controller.balanced_workers=tomcat8081,tomcat8082
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1

5 配置tomcat
修改 server.xml文件


修改后重启
即可见到效果

集群环境下 就存在session 同步问题 。。。这个还是在补充吧 今天没时间了。。太饿了 还没吃饭。。。。。醒了后还没下床

猜你喜欢

转载自netskys.iteye.com/blog/1535659