Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy

环境同使用mod_jk配置负载均衡相同,不同的是,使用mod_proxy相关模块及指令替换mod_jk。注意,mod_jk跟mod_proxy不能同时使用,去掉或注释之前使用mod_jk方式配置的负载均衡。

 
修改Apache的httpd.conf配置文件

Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
 
1:加载必要的模块,使用ajp协议与后端tomcat通信
2:以balancer://开头的Proxy指令会创建一个虚拟的worker,来管理真实的tomcat worker实例
3:BalancerMember配置真实的tomcat worker实例
4:loadfactor指定负载因子,取值范围为0-100,取值越大,权重越大,请求越有可能被该worker处理,配置比较高的服务器该取值可以设置高点
5:配置粘性会话
6:将/shade/开头的请求交给负载均衡worker处理,注意,这边结尾有个‘/’,如果少了‘/’,访问会报错,日志提示:
proxy: No protocol handler was valid for the URL /shade/index. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
stickysession指定session存储到cookie的id
用Firefox打开,请求被211这台tomcat处理

Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
 
用chrome打开,请求被243这台tomcat处理

Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
 
Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
 
以上Apache使用ajp协议与tomcat通信,相应的,tomcat使用ajp connector监听在8009端口,下面使用http协议来通信,修改httpd.conf配置文件如下:

Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
 
去掉ajp模块的加载,改为加载mod_proxy_http模块,原先的ajp协议修改为http协议,tomcat监听端口也改为8080
至此,使用mod_proxy配置Apache与tomcat负载均衡已经完毕,同mod_jk配置负载均衡一样,如果访问过程中有tomcat宕机,session id也会改变,如果是登陆用户,就会出现莫明奇妙的提示未登录,重新登陆,接下来配置tomcat的集群,即session同步,以解决这种情况。

相关推荐