使用Redis存储Nginx+Tomcat负载均衡集群的Session

本文介绍了如何在Nginx+Tomcat负载均衡集群环境中,利用Redis存储Session,以解决Session同步问题。详细步骤包括Nginx、Tomcat的配置,Redis的安装,以及tomcat-redis-session-manager的使用。最终,通过实例演示了登录后Session在不同Tomcat实例间的共享效果。
摘要由CSDN通过智能技术生成

环境:Cent OS 7.0(虚拟机环境)、Nginx 1.9.8、Redis 3.2.1

一、背景

在使用Nginx+Tomcat实现负载均衡的时候,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因为会出现session不同步或者丢失的问题。

二、Nginx安装与配置

1、Nginx安装网上的资源对于安装Nginx的介绍比较多,例如简单的为:

(1) 获取nginx,在http://nginx.org/download/上可以获取当前新的版本下载,例如:wget http://nginx.org/download/nginx-1.9.8.tar.gz

(2)解压缩tar -xvf nginx-1.9.8.tar.gz包。

(3)进入解压缩目录,执行./configure --prefix=/usr/local/nginx-1.9.8 将Nginx安装到/usr/local/nginx-1.9.8目录下

(4)make & make install

安装的过程会将Nginx安装到/usr/local/nginx-1.9.8目录下,启动Nginx测试是否可以正常启动。

2、修改Nginx配置多Tomcat服务器2.1、修改conf/nginx.conf文件,在server标签上边添加upstream如下:

1

这里指定了本机下的两个Tomcat实例,端口分别为8080,8060,权重都为1,后边配置Tomcat实例,mynginxserver这个是自己随意命名的,下边要用到。

2.2、配置server标签:

2

2.3、配置之后的完整内容如下(1.9.8版本删去了注释后的配置内容):

3

2.4、具体的配置项和配置项的具体意义请参考:

https://www.nginx.com/resources/wiki/start/topics/examples/full/

三、Tomcat多实例的配置

1、解压apache-tomcat-7.0.67.zip 得到apache-tomcat-7.0.67

[root@localhost www]# unzip apache-tomcat-7.0.67.zip

2、将apache-tomcat-7.0.67重命名为tomcat1

[root@localhost www]# mv apache-tomcat-7.0.67 tomcat1

重复1、2过程得到tomcat1和tomcat2

3、修改Tomcat1的端口为8080和部署项目文件编辑tomcat下的conf/server.xml,修改端口号为8080,自己写的用于测试Nginx反向代理的web项目war包下载地址:

http://download.csdn.net/detail/u010870518/9585683

下载好之后将解压之后的编译好的项目文件放到tomcat1/webapps/ROOT/目录下:

4

修改index.jsp和login.jsp文件分别标识为具体的Tomcat容器

5

4、修改Tomcat2的端口为8060和部署项目文件编辑tomcat下的conf/server.xml,修改端口号为8060,然后和上述3中的一样,下载war内容,放在tomcat2/webapps/ROOT/下,修改index.jsp和login.jsp用于标识具体的Tomcat容器。

5、分别启动tomcat1和tomcat2。

6、重启Nginx服务,访问IP地址:192.168.1.149:80(这个是访问的虚拟机IP地址)。

7、观看效果

7

可以看出,Nginx已经进行了请求分发,转发到具体的某一个Tomcat

四、Redis的安装与配置

略 可参考网络资料

五、tomcat-redis-session-manager开源项目的使用

1、开源项目地址:

https://github.com/jcoleman/tomcat-redis-session-manager

2、下载代码之后需要进行重新编译,生成所需要的jar,任意创建maven项目,将src下的代码拷贝到具体位置,如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值