一、简介
nginx作为目前最流行的开源反向代理HTTP Servver,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,分布式web server集群部署后需要实现session共享,针对tomcat服务器的实现方案多种多样,如tomcat cluster session广播、nginx IP hash策略、nginx sticky module等方案,本文主要介绍了使用Redis服务器进行session统一存储管理的共享方案。
二、架构图
三、环境配置
本环境基于centos6.5测试,首先安装tomcat、redis、nginx相关环境
nginx 版本 117.34.95.33:80
tomcat1 117.34.95.59:8081
tomcat2 117.34.95.62:8082
redis 117.34.95.17:6379
四、构建tomcat-redis-session-manager-master
1、由于源码构建基于gradle,请先配置gradle环境
2、从github获取tomcat-redis-session-manager-master源码,下载地址如下:https://github.com/jcoleman/tomcat-redis-session-manager,通过gradle命令构建源码,编译输出tomcat-redis-session-manager-master及依赖jar包,命令如下:gradle build -x test  copyJars 
另一种方式,这里还需要tomcat-redis-session-manager相应的jar包,主要有一下3个:
wget https://github.com/downloads/jcoleman/tomcat-redis-session-manager/tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar
wget http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar
wget http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar
下载完成后拷贝到$TOMCAT_HOME/lib中
3、下载后解压,进入该目录,修改tomcat-redis-session-manager-master文件夹下build.gradle文件,主要是注释掉需注册的脚本和签名相关脚本,如下:
 

五、tomcat配置
将上述3个所需包文件拷贝到tomcat安装目录下的lib目录,然后需要修改tomcat的context.xml配置文件。
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manger className="com.orangefunction.tomcat.redissessions.RedisSessionManger"
host="117.34.95.17"
port="6379"
database="0"
maxInactiveInterval="60" />
在最后的</Context>前添加如上内容,如上是连接redis的。配置完成后重启tomcat服务。
六、nginx配置
在nginx官网下载你想要使用的版本,建议使用较为稳定的版本,这里使用nginx-1.10.1版本。下载之后解压即可使用。这里由于要做反向代理,需要在nginx的conf目录下配置nginx的配置文件。修改如下:
这里给大家解释一下,这里用nginx做两个tomcat的负载,所以首先在server节点外设置了负载均衡节点upstream,命名为test,在其中设置两台tomcat的IP及端口,然后设置权重。在server节点中由于没有使用域名做测试,所以这边是localhost,大家在生产环境中可以绑定多个域名,用空格分开。下面的location节点中,主要设置代理,即proxy_pass 后面跟负载均衡访问连接地址。
nginx -s reload 重启nginx服务就完成了nginx的配置.
七、测试
用在nginx中设置的访问地址访问,
 
多次刷新访问,即可看到,两个tomcat配置的负载均衡已经实现。
参考博客:
 
 
 
 
 
 
posted on 2016-09-10 18:57  禁不住就微笑了  阅读(905)  评论(0)    收藏  举报