Tomcat会话保持

文章目录

    • Tomcat会话保持
      • 1、代理服务器配置
      • 2、web服务器配置
      • 3、会话保持
        • 3.1 方法一:修改代理服务器配置(nginx)
        • 3.2 方法二:修改web服务器配置(tomcat)
          • 访问官方文档,查看需要添加的配置文件
          • 修改tomcat服务配置

Tomcat会话保持

1、代理服务器配置

  • 安装nginx服务(地址:192.168.10.11)
systemctl stop firewalld
setenforce 0
#关闭防火墙和防护中心yum install -y epel-release.noarch
#安装yum额外源yum install -y nginx
#安装nginxsystemctl start nginx
#开启nginx服务systemctl status nginx
#查看nginx服务状态#修改配置文件
vim /etc/nginx/nginx.confupstream tomcat {server 192.168.10.12:8080;server 192.168.10.13:8080;}
#在http模块下添加upstream,负载均衡
location ~* \.jsp$ {proxy_pass http://tomcat;}
#在server模块下添加location,反向代理nginx -t
#检查语法nginx -s reload
#重新加载配置文件

image-20240315100919339

image-20240315134914384

2、web服务器配置

  • 安装tomcat(web1地址:192.168.10.12)
  • 安装tomcat(web2地址:192.168.10.13)
web1和web2相同配置systemctl stop firewalld
setenforce 0
#关闭防火墙和防护中心(1)部署jdk
#将需要的jdk二进制包上传tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local
#将二进制包解压到/usr/local目录cd /usr/local/
#切换目录ln -s jdk1.8.0_291/ jdk
#做软连接#修改环境变量
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre   
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/. /etc/profile.d/jdk.sh
#运行java -version
#查看版本(2)安装tomcat
#将需要的tomcat二进制包上传tar xf apache-tomcat-9.0.16.tar.gz 
#解压到指定目录cp -r apache-tomcat-9.0.16 /usr/local/
#复制cd /usr/local
#切换目录ln -s apache-tomcat-9.0.16/ tomcat
#做软连接useradd -M -s /sbin/nologin tomcat
#新建用户chown tomcat:tomcat /usr/local/tomcat/ -R
#修改属主和属组vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
#重新加载配置systemctl start tomcat
#开启服务systemctl status tomcat
#查看tomcat服务状态cd /usr/local/tomcat/webapps/ROOT
#切换目录mv index.jsp index.jsp.bak
#改名#编辑或者上传Java测试脚本,随机生成sessionID
cat index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>tomcat test</title>
</head>
<body>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
  • web1服务器配置(地址:192.168.10.12)

image-20240315135424778

image-20240315135649256

image-20240315135832303

image-20240315142932010

  • web2服务器配置(地址:192.168.10.13)

image-20240315140419908

image-20240315140915724

image-20240315141000400

image-20240315143246794

  • 访问验证
192.168.10.11/index.jsp
#使用主机访问,每刷新一次,sessionID会发生改变

image-20240315143506995

3、会话保持

3.1 方法一:修改代理服务器配置(nginx)
#修改配置文件
vim /etc/nginx/nginx.conf
hash $remote_addr;
#在upstream模块下添加此行配置内容($remote_addr表示存放客户端的地址)nginx -t
#检查语法nginx -s reload
#重新加载配置文件

image-20240315144117920

  • 验证
192.168.10.11/index.jsp
#使用主机访问,刷新后,sessionID不会再发生改变,实现会话绑定#这种方法有缺陷,会话实现绑定之后,web服务器也不会发生改变,会永远绑定在该web服务器上

image-20240315144406951

3.2 方法二:修改web服务器配置(tomcat)
  • 适用于后端服务器比较少的场景
访问官方文档,查看需要添加的配置文件
#官方文档
https://tomcat.apache.org/tomcat-9.0-doc/cluster-howto.html#在配置文件/usr/local/tomcat/conf/server.xml中只需要将Receiver里面的address修改为本机的ip地址,除此之外不需要修改,粘贴到配置文件中即可
For the impatient
The following is the default cluster configuration: 
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"><Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><Channel className="org.apache.catalina.tribes.group.GroupChannel"><Membership className="org.apache.catalina.tribes.membership.McastService"address="228.0.0.4"port="45564"frequency="500"dropTime="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"#此处修改为本机的ip地址port="4000"autoBind="100"selectorTimeout="5000"maxThreads="6"/><Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/><Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/><Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>#在配置文件/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml中添加<distributable/>配置内容
Cluster Basics
Make sure your web.xml has the <distributable/> element
#如果使用web.xml,需要添加<distributable/>功能
  • 查看官方文档

image-20240315145741214

image-20240315150348814

修改tomcat服务配置
cd /usr/local/tomcat/conf
#切换目录#修改配置文件
vim server.xml<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"><Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><Channel className="org.apache.catalina.tribes.group.GroupChannel"><Membership className="org.apache.catalina.tribes.membership.McastService"address="228.0.0.4"port="45564"frequency="500"dropTime="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="192.168.10.12"#address="192.168.10.13"#修改为本机的ip地址port="4000"autoBind="100"selectorTimeout="5000"maxThreads="6"/><Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/><Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/><Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>cd /usr/local/tomcat/webapps/ROOT/WEB-INF
#切换目录#修改配置文件
vim web.xml</description>
<distributable/>
#在此处添加此行配置内容
</web-app>systemctl restart tomcat
#重启服务
  • web1服务器配置(地址:192.168.10.12)

image-20240315151141956

image-20240315153715657

image-20240315151452524

image-20240315154450473

  • web2服务器配置(地址:192.168.10.13)

image-20240315153254450

image-20240315153209550

image-20240315153416541

image-20240315154420198

  • 验证
192.168.10.11/index.jsp
#使用主机访问,刷新后,sessionID保持不变,实现会话绑定,web服务器依旧切换

image-20240315154256730

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

声通科技:CoAI交互式人工智能领域的创新领军者

在人工智能的浪潮中&#xff0c;交互式人工智能&#xff08;CoAI&#xff09;以其独特的优势&#xff0c;正逐渐改变着人们的生活方式和工作模式。作为中国企业级信息技术解决方案提供商&#xff0c;上海声通信息科技股份有限公司&#xff08;下文称&#xff1a;声通科技&#…

所有现在的天坑专业都有着无比辉煌的过往

同理&#xff0c;现在辉煌的专业&#xff0c;将来也必然走下神坛。 工匠的发展与兴衰趋势-机器人篇 1024-2023-珍爱生命远离成功学 大学专业发展史&#xff1a;从辉煌银河到天坑深渊 大学专业的发展史&#xff0c;宛如一部波澜壮阔的史诗&#xff0c;既有“飞流直下三千尺”…

运行gazebo机器人模型没有cmd_vel话题

运行赵虚左教程代码出现上诉问题 roslaunch urdf02_gazebo demo03_env.launch 原因&#xff1a;缺少某个包 在工作空间catkin_make编译发现报错 解决&#xff1a; sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control 下载后再次运行launch文件…

亚马逊一款床架热评超10w+!赛盈分销选品指南助力卖家撬动海外新机会

人的一天至少有8个小时是在床上的&#xff0c;床上用品成为人们日常生活的刚需。 但有研究表明&#xff0c;在生活各方面的施压下&#xff0c;每年就有7千万的美国人产生睡眠障碍。为了提升睡眠质量&#xff0c;相关功能性和刚需类的商品需求暴增&#xff0c;加速推动了睡眠经济…

Linux下的多线程编程:原理、工具及应用(1)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

搜索:DFS与BFS

DFS与BFS为图论中的概念。在搜索算法中&#xff0c;该词常常指利用递归函数方便地实现暴力枚举的算法&#xff0c;与图论中的 DFS 算法有一定相似之处&#xff0c;但并不完全相同。BFS 在搜索中&#xff0c;将每个状态对应为图中的一个点即可。 DFS&#xff08;搜索&#xff0…

使用IDF和VSCode构建ESP32的开发环境

目录 概述 1 安装ESP32开发环境IDF 1.1 下载软件 1.2 安装软件 1.3 配置环境参数 1.4 VSCode中配置IDF插件 1.5 配置烧写代码方式 2 在使用vscode创建工程 2.1 创建工程模版 2.2 工程目录介绍 3 编译和下载 3.1 认识 VSCode下idf编译环境 3.2 编译代码 3.2.1 认识…

数据结构:静态链表(编程技巧)

链表的元素用数组存储&#xff0c; 用数组的下标模拟指针。 一、理解 如果有些程序设计语言没有指针类型&#xff0c;如何实现链表&#xff1f; 在使用指针类型实现链表时&#xff0c;我们很容易就可以直接在内存中新建一块地址用于创建下一个结点&#xff0c;在逻辑上&#x…

软件无线电系列——模拟无线电、数字无线电、软件无线电

本节目录 一、模拟无线电 二、数字无线电 1、窄带数字无线电 2、宽带数字无线电 三、软件无线电本节内容 一、模拟无线电 20世纪80年代的模拟体制(美国的AMPS/欧洲的TACS)被称为第一代移动通信&#xff0c;简称1G,主要目标是为在大范围内有限的用户提供移动电话服务。最主要的…

【数据结构】二叉搜索树底层刨析

文章目录 1. 二叉搜索树的实现2. 二叉搜索树的应用3. 改造二叉搜索树为 KV 结构4. 二叉搜索树的性能分析 1. 二叉搜索树的实现 namespace key {template<class K>struct BSTreeNode{typedef BSTreeNode<K> Node;Node* _left;Node* _right;K _key;BSTreeNode(const…

pycharm打开文件GBK编码格式

Preferences→File Encodings→Global Encoding(全局编码)或Project Encoding(项目编码)。IIDE Encoding是IDE编码。下面这个roject Encoding 是项目编码&#xff0c;修改项目编码为UTF-8

离线安装数据库 mysql 5.7 linux

离线安装数据库 mysql 5.7 linux 方法一 参考链接Linux(Debian10.2)安装MySQL5.7.24环境 赋予文件执行权限chmod x 文件名 使用root用户sudo su解压文件tar xvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz重命名mv mysql-5.7.42-linux-glibc2.12-x86_64 mysql将桌面的mys…