Tomcat【redis-session共享】

news2024/11/20 4:39:15

目录

1、创建虚拟主机(01-02)相同【192.168.200.121、192.168.200.122】

2、LB配置文件【192.168.200.120】

3、tomcat节点配置TomcatClusterRedisSessionManager方式实现redis共享(01-02)相同

4、安装redis、配置【192.168.200.123】

5、重启tomcat

6、测试访问,查看session不会再发生改变


创建虚拟主机(01-02)相同【192.168.200.121、192.168.200.122】

[root@nginx zrlog]# vim /soft/tomcat/conf/server.xml 
            <Host name="www.test-session.org"  appBase="/code/session"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="session_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %{X-Forwarded-For}i" />
      </Host>
  • 创建目录、代码
[root@nginx zrlog]# mkdir /code/session/ROOT -p

[root@nginx zrlog]# vim /code/session/ROOT/index.jsp

<body>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getCreationTime());
out.println("<br> web01 SESSION ID:" + session.getId() + "<br>");
out.println("Session created is:" + session.getCreationTime() + "<br>");
%>
</body>

LB配置文件【192.168.200.120】

[root@nginx nginx]# vim /etc/nginx/conf.d/session.conf 
upstream session {
  server 192.168.200.121:8080;
  server 192.168.200.122:8080;
}
server {
  listen 80;
  server_name www.test-session.org;
  location / {
    proxy_pass http://session;
    include proxy_params;
  }
}

[root@nginx nginx]# vim /etc/nginx/proxy_params 
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_connect_timeout 60s;      # nginx连接后端的超时时间
proxy_read_timeout 60s;         # 响应头部超时时间
proxy_send_timeout 60s;         # 响应数据主体的超时时间
proxy_buffering on;             # 开启缓冲区
proxy_buffer_size 8k;           # 缓冲区Header大小
proxy_buffers 4 64k;            # 缓冲区数量 * 大小 = 最大接收

tomcat节点配置TomcatClusterRedisSessionManager方式实现redis共享(01-02)相同

[root@nginx ~]# wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/4.0/tomcat-cluster-redis-session-manager.zip

## 解压
[root@nginx ~]# unzip tomcat-cluster-redis-session-manager.zip

## 拷贝jars到tomcat/lib目录中
[root@nginx ~]# cp tomcat-cluster-redis-session-manager/lib/* /soft/tomcat/lib/

## 拷贝配置文件到/conf中
[root@nginx ~]# cp tomcat-cluster-redis-session-manager/conf/redis-data-cache.properties /soft/tomcat/conf/

## 修改配置文件
[root@nginx ~]# grep "^[a-z]" /soft/tomcat/conf/redis-data-cache.properties 
redis.hosts=192.168.200.123:6379
redis.cluster.enabled=false
redis.sentinel.enabled=false
redis.sentinel.master=mymaster
redis.timeout=2000
lb.sticky-session.enabled=false
session.persistent.policies=DEFAULT
redis.sso.timeout=0

## 修改context.conf中添加以下两行
[root@nginx ~]# vim /soft/tomcat/conf/context.xml
<Context>
.....
<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" />
.....
</Context>

## 调整session的过期时间到60s,默认时30分钟,可以不用修改
[root@nginx ~]# vim /soft/tomcat/conf/web.xml
        <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

安装redis、配置【192.168.200.123】

[root@redis ~]# yum  -y install redis

[root@redis ~]# sed -i '/^bind/c bind 127.0.0.1 192.168.200.123' /etc/redis.conf

[root@redis ~]# systemctl restart redis

[root@redis ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.200.123:6379    0.0.0.0:*               LISTEN      3336/redis-server 1 
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      3336/redis-server 1 

重启tomcat

[root@nginx ~]# systemctl stop tomcat.service 
[root@nginx ~]# systemctl start tomcat

测试访问,查看session不会再发生改变

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧餐饮未来:点赋科技智能饮品机器人带来的变革

随着科技的不断发展&#xff0c;智慧餐饮作为餐饮行业的新兴概念已经不再只是简单的餐厅智能化&#xff0c;而是包括了数字化、智能化和现代化等多个方面。点赋科技智能饮品机器人是智慧餐饮中最具代表性的之一&#xff0c;它的发展将引领智慧餐饮行业的未来方向。 首先&#x…

TIA博途Wincc中制作电机风扇或水泵旋转动画的具体方法示例

TIA博途Wincc中制作电机风扇或水泵旋转动画的具体方法示例 如下图所示,打开TIA博途软件,新建一个项目,添加一个1215 PLC,双击进入设备组态,设置属性—常规—系统和时钟存储器,勾选“启用系统存储器字节”、“启用时钟存储器字节”, 如下图所示,添加一个全局DB块,这里…

【Java】02--变量与数据类型Scanner

文章目录 1.什么是常量&#xff0c;什么是变量2.数据类型2.1什么是数据类型转换 3.为什么要使用Scanner 1.什么是常量&#xff0c;什么是变量 你只需要记住两点&#xff1a; 常量&#xff1a;就是一种不会根据环境而改变的数据&#xff0c;例如&#xff1a;圆周率。 变量&…

网络io模型、同步异步及Sanic和uvloop

网络io模型及基础概念 概念说明 用户空间与内核空间 操作系统的核心是内核&#xff0c;独立于普通的应用程序&#xff0c;可以访问受保护的内存空间&#xff0c;也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核&#xff08;kernel&#xff09;&#xff0…

银河麒麟系统安装mysql数据库[mysql-5.7.28-linux-glibc2.12-x86_64]

银河麒麟系统安装mysql数据库 1.1 准备材料 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz MySQL5.7下载地址 https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 1.1 安装前准备工作 1、检查是否已经安装MySQL [rootlocalhost ~]# rpm …

使用虚拟引擎创建海盗船长角色分解

介绍 你好&#xff01;我叫 Stapan&#xff0c;我是电影和电影的角色艺术家&#xff0c;我有在动画工作室担任自由艺术家和角色艺术家的经验&#xff0c;现在我正在与 Artem Gansior 领导的 ODEE 团队一起制作一部短片。 参考 对于这个项目&#xff0c;最初的角色概念是由超…

MAYA曲线粒子

不从粒子中心发射 nParticleShape1.massrand(0.5,0.7);

【Linux】Linux服务器硬件条件的查看

【Linux】Linux服务器硬件条件的查看 文章目录 【Linux】Linux服务器硬件条件的查看1. CPU条件查看1.1 查看CPU 个数1.2 查看 CPU 物理核数1.3 查看CPU的运行模式1.4 查看 CPU 的型号 2. GPU 条件查看3. 查看磁盘空间、内存、Linux内核当前的系统版本号3.1 磁盘空间3.2 内存3.3…

电源自动化测试系统一站式软硬件解决方案ATECLOUD-Power

*测试系统&#xff1a;本系统是专门针对各类电源模块测试的一体化智能解决方案&#xff0c;此框架结构可根据客户实际测试需求以及预算进行调整&#xff0c;经济适用。 *测试产品&#xff1a;DC-DC电源模块、AC-DC电源模块、车用电源模块、机载电源模块、军用电源模块、特种电源…

A2B音频传输误码率测量方法

+hezkz17进数字音频系统研究开发交流答疑 如何测量音频传输误码率? 2023/6/27 14:03:58 要测量音频传输误码率,可以采取以下步骤: 选择合适的测试设备和仪器:使用专门用于音频传输测试的设备,例如音频信号发生器、示波器和频谱分析仪等。 设置测试场景:确保测试环境符合…

C语言time(NULL)学习

根据资料&#xff1b;如下一段代码&#xff1b; clock_t a,b; float cputime; atime(NULL);for (intz0;z<10000000;z){ float f0; for (int i 0; i<n; i)f h_idata[i]; }btime(NULL); cputime(float)(b-a); printf("cuptime%fmseconds\n",cputime); 前后2个…

Linux——2Linux基础命令

目录 2.1 Linux的目录结构 2.2 Linux命令入门 ls命令 Home目录和工作目录 2.3 目录切换相关命令 cd 切换工作目录 pwd 查看当前工作目录 2.4 相对路径、绝对路径和特殊路径符 相对路径和绝对路径 特殊路径符 2.5 创建目录命令mkdir 2.6 文件操作命令 touch、cat、…

文本分析-使用jieba库实现TF-IDF算法提取关键词

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash

概述 我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 使用标准SPI接口外挂flash&#xff0c;需要自己实现flash驱动&#xff0c;和自己移植文件系统 使用QSPI接口外挂flash&#xff0c;不需要自己实现flash驱动&#xff0c;也不需要移植文件系统 。通过mount接口挂…

医院电气能源管理与节能措施讨论

摘要&#xff1a;随着我国经济建设的不断加快&#xff0c;我国能源消耗也越来越大&#xff0c;如何通过电气能源管理实现节能是各行各业都在研究的课题。医院作为我国重要的医疗服务机构&#xff0c;能源管理是医院管理中的重要组成部分。本文将针对医院电气能源管理与节能措施…

maven Nexus 私库安装使用总结

maven Nexus私库安装使用总结 大纲 nexus安装总结nexus使用总结域名配置admin账号密码修改创建仓库组创建仓库创建权限创建角色创建用户mvn deploy 部署配置 nexus安装总结 本例子使用的是常见的nexus2.x版本 注意需要先安装JDK Nexus 专业版是需要付费的&#xff0c;这里…

硬件学习 软件 Cadence day11 PCB 设计中 临时 的翻转/旋转快捷键设置等

1. PCB设计中多种快捷键设置 (临时的) 1.1 旋转 90 快捷键设置 &#xff08;角度自己可以改 &#xff09; alias ~R angle 90 #CtrlR 1.2 元器件 底层 和 顶层交换的快捷键 &#xff08;临时的&#xff09; alias ~F mirror #Ctrl F 参考文章&#xff1a;Cadenc…

数据结构--单链表的建立

数据结构–链表的建立 目标&#xff1a; Step 1:初始化一个单链表 Step 2:每次取一个数据元素&#xff0c;插入到表尾/表头 尾插法建立单链表 代码实现 typedef struct LNode {int data;struct LNode *next; }LNode, *LinkList;LinkList List_TailInsert(LinkList &L) {…

vditor 自定渲染,lute.js api

渲染器函数 目前支持的渲染回调场景如下&#xff1a; 即使渲染&#xff1a;IR -> SpinVditorIRDOM 分屏&#xff1a;sv -> SpinVditorSVDOM 所见所得&#xff1a;wysiwyg -> SpinVditorDOM // 自定义回调 vue 为例子 after: function () {this.vditor.vditor.lute.Se…

2023年城市分站系统源码采用php语言

系统源码介绍&#xff1a; 本系统采用了php语言&#xff0c;根据现有了城市分布&#xff0c;包含了省市区&#xff0c;划分&#xff0c;具备了高级少选功能&#xff0c;按照每个市级城市为分站点&#xff0c;和主站点同样的模式。 安装方法&#xff1a; 快速创建几百个城市分…