一、准备工作

中间件:Tomcat、Redis、Nginx

jar包:commons-pool2-2.4.2.jar、jedis-2.8.0.jar、tomcat-redis-session-manager-2.0.0.jar

二、配置

Tomcat

多台Tomacat需要配置不同的端口号

/lib

将jar包存放到此位置

/conf/server.xml

/conf/context.xml

host为Redis的ip地址,port为端口,database为数据库。

Nginx

/conf/nginx.conf

upstream意为配置服务器列表,本例中开启了两台tomcat,端口分别为8080与9999。

proxy_pass意为配置代理服务器。

此配置意为监听本地(192.168.0.113)的80端口,并将请求以轮询方式转发给8080和9999的tomcat服务器。

Redis

Redis不需要特殊配置,启动即可。

三、测试

先后启动Redis服务、两台tomcat服务器、Nginx服务器。

在Tomcat启动页面加上标识,判断两台服务器中sessionId是否一致。

/webapps/ROOT/index.jsp:

四、结果

如果F5刷新页面不能切换端口对应的页面,可能是由于浏览器缓存造成。

解决方法:清除缓存刷新,alt+F5

此时可看到多个tomcat服务在不断轮询,且sessionId一致。

再用Redis桌面管理工具查看信息:

可以看到session信息已经交给Redis管理。

实现成功 。

五、弊端

此种方式依赖于tomcat容器,如果中间件换成jetty或者其他,就不受用。

还有一种较好实现方式:Spring Session + Redis

Tomcat +Nginx+Redis实现session共享的更多相关文章

  1. Tomcat通过Redis实现session共享的完整部署记录

    对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每 ...

  2. windows 环境下nginx + tomcat群 + redis 实现session共享

    nginx作为负载均衡根据定义将不同的用户请求分发到不同的服务器,同时也解决了因单点部署服务器故障导致的整个应用不能访问的问题 在加入nginx之后,如果多个服务器中的一个或多个(不是全部)发生故障, ...

  3. Tomcat 使用redis实现session共享

    准备工作: 1.安装nginx 环境搭建参考:https://blog.csdn.net/fd2025/article/details/79878326 nginx.conf的编辑: 2.同一台机器配 ...

  4. tomcat用redis做session共享

    在context.xml添加以下配置: <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerVa ...

  5. tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  6. 【转载】tomcat+nginx+redis实现均衡负载、session共享(一)

    http://www.cnblogs.com/zhrxidian/p/5432886.html 在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一 ...

  7. Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享

    小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...

  8. nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710

    转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...

  9. Nginx+tomcat+redis实现session共享

    Nginx+tomcat+redis实现session共享 1,安装nginx,使用yum -y install nginx 这是epel源中的,需要安装epel源. 2,配置nginx. 在ngin ...

随机推荐

  1. C#LeetCode刷题之#575-分糖果​​​​​​​(Distribute Candies)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3798 访问. 给定一个偶数长度的数组,其中不同的数字代表着不同种 ...

  2. Vue 过滤器 Filter传递参数

    给日期类型过滤器设置不同格式 dayjs是一款轻量级的日期操作库 https://day.js.org/en import Vue from 'vue' import dayjs from 'dayj ...

  3. 封装react antd的表格table组件

    封装组件是为了能在开发过程中高度复用功能和样式相似的组件,以便我们只关注于业务逻辑层的处理,提高开发效率,提高逼格,降低代码重复率,降低劳动时间,减少加班的可能. 本次组件的封装采用了函数式组件即无状 ...

  4. BufferedReader、BufferedWriter读写文件乱码问题:

    代码: text4500.txt文档用text打开(不知道格式): 读取会出现乱码,然后用Notepad++打开换成UTF-8格式的.就可以了

  5. PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)

    前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...

  6. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

  7. C#实践设计模式原则SOLID

    理论跟实践的关系,说远不远,说近不近.能不能把理论用到实践上,还真不好说.   通常讲到设计模式,一个最通用的原则是SOLID: S - Single Responsibility Principle ...

  8. Kubernetes 实战-Operator Finalizers 实现

    原文链接:https://zdyxry.github.io/2019/09/13/Kubernetes-%E5%AE%9E%E6%88%98-Operator-Finalizers/ Finalize ...

  9. CCF-202006-1线性分类器

    1 def judga(lis1,z): #判断列表lis1中点是否都在线z的一侧 s=0 for i in lis1: if z[0]+i[0]*z[1]+i[1]*z[2]>0: s+=1 ...

  10. Ubuntu 20.04美化及QQ、微信安装

    1.前言 电脑用了很多年了,安装的windows7,经常出现很卡的情况,于是今天索性重装了系统.既然重装系统,选择什么系统好呢,windows10系统的话,对于我这老旧本来说,可能真的是为难它了.刚好 ...