Redis之Tomcat Session共享

本文介绍如何使用Nginx作为负载均衡器,配合两台Tomcat服务器和Redis实现跨服务器的会话共享。通过配置Nginx的upstream模块和Tomcat的RedisSessionManager,确保了无论用户访问哪台Tomcat服务器,都能保持相同的sessionId,从而实现了高可用和负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备3台虚拟机

192.168.37.137,192.168.37.134,192.168.37.135;

二、192.168.37.137

①配置nginx,nginx.conf配置文件:

events {
    worker_connections  1024;
}
 
http {
       upstream tomcat{
	 server 192.168.37.134:8080;
	 server 192.168.37.135:8080;
    }
    server{
        listen       80;
 
        location / {
            proxy_pass  http://tomcat;
        }
    }
}

②启动redis,用于存放共享的session

三、192.168.37.134,192.168.37.135,分别部署一台tomcat,两台的部署操作是一样,以134这台机子为例

①下载apache-tomcat-7.0.91.tar.gz,放在/opt/tomcat目录下,并解压

②进入tomcat的目录,/opt/tomcat/apache-tomcat-7.0.91/conf,编辑context.xml文件,加入redis配置

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
       host="192.168.37.137"
       port="6379"
       password="123456"
       database="0"
       maxInactiveInterval="60" />

③进入tomcat的目录,/opt/tomcat/apache-tomcat-7.0.91/lib,添加redis的jar包

commons-pool2-2.2.jar,jedis-2.5.2.jar,tomcat-redis-session-manage-tomcat7.jar

④为了验证sessionId是否相同,我们修改/opt/tomcat/apache-tomcat-7.0.91/webapps/ROOT的index.jsp文件,输出sessionId:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>session id</title>
</head>
<body>
    134 Session Id : <%= request.getSession().getId() %>
</body>
</html>

⑤启动tomcat

四、访问

http://192.168.37.137/

交替显示

134 Session Id : 00A9B9054BEEBD3DF50951E150DA850D 
135 Session Id : 00A9B9054BEEBD3DF50951E150DA850D 

nginx对两台tomcat进行了负载均衡,并且无论访问到哪台tomcat,其sessionId是相同的

我们用RedisDesktopManager客户端查看,也可以看到这条sessionId为00A9B9054BEEBD3DF50951E150DA850D的session

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎户星座。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值