• Tomcat +Nginx+Redis实现session共享


    一、准备工作

    中间件: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

  • 相关阅读:
    蓝牙的AVDTP协议笔记
    蓝牙的AVCTP协议笔记
    hosts学习整理
    Win10报错0x800f0906
    Git Bash的妙用
    将xml文件由格式化变为压缩字符串
    try-with-resource机制的一个编译陷阱
    Git回滚代码暴力法
    IDEA中Git分支未push的变更集如何合并到另一个分支
    日期类型存储成字符串类型的格式问题
  • 原文地址:https://www.cnblogs.com/yl-space/p/13229878.html
Copyright © 2020-2023  润新知