Linking

Capturing Life & Tech

  • 主页
  • 随笔
  • 关于我
所有文章 外链

Linking

Capturing Life & Tech

  • 主页
  • 随笔
  • 关于我

同一个IP(服务器)多个Tomcat产生session覆盖问题记录

阅读数:次 2019-07-30
字数统计: 707字   |   阅读时长≈ 2分

目录

1.生产事故记录
–1.1问题描述
–1.2问题分析
–1.3解决途径
–1.4结果
–1.5未验证疑问
2.参考
3.tomcat-session原理相关
–3.1听网易公开课的几个问题 - 有关Session 工作原理
—3.1.1 Tomcat 中 session 保存在哪?
—3.1.2 tomcat 怎么追踪请求属于哪个session?
—3.1.3 session是不是在用户登录时就产生了
—3.1.4 tomcat 默认并发数

1.生产事故记录

1.1问题描述

本次设计有web前端系统(public)及web管理端(manager)两个web用户系统,在同一个浏览器同时打开两个系统,先后登录,之后系统会丢失登录状态。

现象:同一个浏览器访问同一个服务器下的两个tomcat服务,会产生session覆盖的问题。

1.2问题分析

  • 1.同一个浏览器,两个系统不同的窗口打开,按说不会互相影响;
  • 2.搜索得知在不同窗口,即使是同一个浏览器也不会互相影响,但在devTools(Application-Storage-Cookies-xxxdomain)中,查看会话的确被重置了;

1.3解决途径

一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法。

解决方法:

  • 1.不同项目使用不同的服务器

不多赘述

  • 2.指定不同的tomcat的cookie名称

修改coocie的名称保证cookie不重复,即jsessionid的不重称,保证ip相同下sessioncookiename域名不同。

具体修改配置tomcat/conf/server.xml,在Host标签下Context容器,如下

1
2
3
4
5
<Host>
...
<Context path="/" docBase="ROOT" reloadable="false" sessionCookieName="yoursessionName"></Context>
...
</Host>
  • docBase: webapps/下存放代码的文件夹名称

1.4结果

在按照以上方法修改,重启服务之后,问题得到解决。

1.5未验证疑问

  • 1.将 ip:port 换成域名,是否能解决此问题

2.参考

  • 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

3.tomcat-session原理相关

3.1听网易公开课的几个问题 - 有关Session 工作原理

  • 网易公开课地址

3.1.1 Tomcat 中 session 保存在哪?

tomcat 本地的ConcurrentHashMap中(本地缓存),以sessionid为key

3.1.2 tomcat 怎么追踪请求属于哪个session?

通过cookie:产生会话时向浏览器发送存有sessionid的cookie,后续请求都带上这个cookie

3.1.3 session是不是在用户登录时就产生了

不是,会话是用来跟踪多个请求的,登录只是明确会话的主人是谁(把用户信息存放到session中)

3.1.4 tomcat 默认并发数

maxThreads 可配置

  • 本文作者: Linking
  • 本文链接: https://linking.fun/2019/07/30/同一个IP(服务器)多个Tomcat产生session覆盖问题记录/
  • 版权声明: 版权所有,转载请注明出处!
  • tomcat
  • session
  • CS

扫一扫,分享到微信

防盗链
Nginx使用小结
  1. 1. 目录
  • 1.生产事故记录
    1. 1. 1.1问题描述
    2. 2. 1.2问题分析
    3. 3. 1.3解决途径
    4. 4. 1.4结果
    5. 5. 1.5未验证疑问
  • 2.参考
  • 3.tomcat-session原理相关
    1. 1. 3.1听网易公开课的几个问题 - 有关Session 工作原理
      1. 1.1. 3.1.1 Tomcat 中 session 保存在哪?
      2. 1.2. 3.1.2 tomcat 怎么追踪请求属于哪个session?
      3. 1.3. 3.1.3 session是不是在用户登录时就产生了
      4. 1.4. 3.1.4 tomcat 默认并发数
  • © 2015-2026 Linking
    GitHub:hexo-theme-yilia-plus by Litten
    本站总访问量次 | 本站访客数人
    • 所有文章
    • 外链

    tag:

    • weather
    • 需求
    • essay
    • basketball
    • olympic
    • nginx
    • APPScan
    • SQl盲注
    • xss
    • Ajax
    • ajax
    • ai
    • agent
    • openclaw
    • ccf
    • Nginx
    • HTML5
    • html5
    • hmtl5
    • sse
    • JavaScriptCore
    • Oracle
    • operation
    • Linux
    • deploy
    • Mac Office
    • markdown
    • ListView
    • GridView
    • MySQL
    • 慢查询
    • mongodb
    • 转置
    • thought
    • network
    • ubuntu
    • NetworkManager
    • RFKill
    • Netplan
    • avatar
    • cocoa
    • blog
    • Gitalk
    • container
    • macvlan
    • docker
    • oracle
    • cookie
    • patch
    • gitea
    • git
    • iOS
    • https
    • 多线程
    • bundle
    • 兼容性
    • HTTP
    • 绘图
    • cs
    • java
    • 效率
    • 快捷键
    • route
    • nodejs
    • pip
    • arcgis
    • arcgis 建模
    • 标识
    • redis
    • read
    • bookList
    • running
    • showdoc
    • disk
    • unit-test
    • D.Wade
    • thoughts
    • duoduo
    • Python
    • python
    • tomcat
    • 读书节
    • session
    • jdk
    • war
    • 加班
    • Android onclick事件监听
    • 正则
    • 手机品牌匹配
    • ntp
    • OpenLayers
    • Geoserver
    • wechat
    • 微信公众号
    • 爬虫
    • WeChat
    • 张靓颖
    • 动漫
    • vpn
    • PPT
    • MarkDown
    • plan
    • 朱赟
    • 极客时间专栏
    • 极客邦
    • 模块化
    • MVC
    • excel
    • NBA
    • kobe
    • team
    • crawler
    • 进度条
    • ssl
    • book
    • anti-stealing-link
    • Agentic Engineering
    • Vibe Coding
    • Software 3.0
    • Andrej Karpathy
    • LLM
    • Programming

      缺失模块。
      1、请确保node版本大于6.2
      2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
      npm i hexo-generator-json-content --save

      3、在根目录_config.yml里添加配置:

        jsonContent:
          meta: false
          pages: false
          posts:
            title: true
            date: true
            path: true
            text: false
            raw: false
            content: false
            slug: false
            updated: false
            comments: false
            link: false
            permalink: false
            excerpt: false
            categories: false
            tags: true
      

    • GitHub Trending
    • OpenAI ChatGPT
    • Gitee码云
    • 简书
    • CSDN