美文网首页
11月20日 实现tomcat将会话保存至redis中

11月20日 实现tomcat将会话保存至redis中

作者: 张大志的博客 | 来源:发表于2017-11-20 21:23 被阅读0次
    image.png
    1、在nginx主机上实现将客户端的请求反向代理至后端的两台tomcat主机
    vim /etc/nginx/nginx.conf
      upstream tcsrvs {   ---在http语句块里
        server 172.18.21.7:8080;
        server 172.18.21.200:8080;
    }
      location / {     ---在server语句块里
            proxy_pass http://tcsrvs;
            }
    systemctl start nginx
    2、配置并启动redis
    vim /etc/redis.conf
    bind 0.0.0.0     ---监控在本地的所有ip
    requirepass "centos"   ---设置连接redis的密码
    systemctl start redis ---redis可以启用主从复制和sentinel故障转移,本实验为了方便,只使用一台redis主机
    3、在两个tomcat主机上的设置
    mkdir -pv /usr/share/tomcat/webapps/myapp/WEB-INF
    cd  /usr/share/tomcat/webapps/myapp/
    vim index.jsp  ---创建测试页面
    <%@ page language="java" %>
    <html>
      <head><title>TomcatA</title></head>   ---将另外一台主机改为B
      <body>
        <h1><font color="red">TomcatA.magedu.com</font></h1>---将另外一台主机改为B,颜色改为green用来区分
        <table align="centre" border="1">
          <tr>
            <td>Session ID</td>
        <% session.setAttribute("magedu.com","magedu.com"); %>
            <td><%= session.getId() %></td>
          </tr>
          <tr>
            <td>Created on</td>
            <td><%= session.getCreationTime() %></td>
         </tr>
        </table>
      </body>
    </html>
    在/etc/tomcat/context.xml里添加如下语句
    vim /etc/tomcat/context.xml 
     <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
        <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
            host="172.18.21.100"   ---指明后端的redis主机
            password="centos"    ---指明连接redis主机的密码
            port="6379"     ---指明端口
            database="0"   ---指明存储到redis的哪个数据库
            maxInactiveInterval="60"/>
    [root@node1 jar]#ls    ---将如下.jar文件拷贝到两台tomcat主机的 /usr/share/tomcat/lib/目录下
    commons-pool2-2.4.2.jar  jedis-2.8.2.jar  tomcat-redis-session-manage-tomcat7.jar
    cp * /usr/share/tomcat/lib/
    systemctl start tomcat  ----启动tomcat服务
    [root@node3 myapp]#redis-cli -a centos  
    127.0.0.1:6379> KEYS *
    1) "97CB1BF4F3AB955F02D95BC85F60CDF0"   ---可以看到存储的会话的键
    4、测试
    http://172.18.21.100/myapp/
    发现无论调度至tomat的哪个主机,会话是一样的,没有变化,说明会话保存成功。
    

    相关文章

      网友评论

          本文标题:11月20日 实现tomcat将会话保存至redis中

          本文链接:https://www.haomeiwen.com/subject/hsebvxtx.html