在docker里使用tomcat7 + redis实现session共享

模拟环境:linux安装docker,然后分别新建jax-tomcat1、jax-tomcat2、jax-redis容器,实现tomcat1和tomcat2可以共享session,既在jax-tomcat1程序里登陆之后,在jax-tomcat2里面实现免登录。并且准备一个charge.war的web程序包

1.下载安装tomcat

https://blog.csdn.net/buyaopingbixiazai/article/details/89344211

2.下载安装redis

https://blog.csdn.net/buyaopingbixiazai/article/details/89303538

3.配置tomcat,分别配置jax-tomcat1和jax-tomcat2

3.1下载jar包

  1. jedis.jar 
  2. commons-pool2.jar
  3. tomcat-redis-session-manager-1.2-tomcat-7.jar

下载链接:https://download.csdn.net/download/buyaopingbixiazai/11120783

3.2把jar包放到tomcat的lib目录下,并且把propersite文件copy到conf目录下

propersite下载链接:https://download.csdn.net/download/buyaopingbixiazai/11122105

命令:docker cp 项目 容器名称(容器ID):/usr/local/tomcat/webapps

我是把jar包放到root目录下边了,根据自己jar包的位置自行修改命令

[root@localhost ~]# docker cp /root/commons-pool-1.5.4.jar jax-tomcat1:/usr/local/tomcat/lib   

然后依次把三个jar包都copy到jax-tomcat1的lib目录下

3.3修改context.xml,添加以下内容

tomcat容器需要安装vim才能使用,安装教程:https://blog.csdn.net/buyaopingbixiazai/article/details/89330848



        host="127.0.0.1"
        port="6379"
        database="0"
        maxInactiveInterval="60" />

3.4复制charge.war到tomcat的webapps目录下

命令:docker cp 项目 容器名称(容器ID):/usr/local/tomcat/webapps

3.5修改server.xml

tomcat容器需要安装vim才能使用,安装教程:https://blog.csdn.net/buyaopingbixiazai/article/details/89330848

1).首先进入jax-tomcat1容器,命令:docker exec -it 容器名称(容器ID) /bin/bash,目录如下

 [root@localhost ~]# docker exec -it jax-tomcat2 /bin/bash
root@7f9f5c1e142f:/usr/local/tomcat# ls
BUILDING.txt     NOTICE         RUNNING.txt  include  native-jni-lib  work
CONTRIBUTING.md  README.md      bin          lib      temp
LICENSE          RELEASE-NOTES  conf         logs     webapps
root@7f9f5c1e142f:/usr/local/tomcat#

2). 进入conf目录下,在server.xml文件添加以下内容:

<Context docBase="charge" path=""  />

命令说明:

docBase="charge" : charge为上传到tomcat下边webapps的war包名称(war包会自动解压为一个同名的文件加),charge可以自行修改成自己的war包名称

path="": 路径一定要为空,如果不为空每个程序都会和tomcat创建一个sessionid,就没办法实现session共享

3). 修改完之后,退出容器,命令:exit

3.6重启tomcat

命令:docker restart 容器名称(容器ID)

4.重复步骤3,把第二个tomcat也配置一下!!! 

 

5.登陆系统测试:先登陆tomcat1里的程序,tomcat2的程序实现了免登录,并且redis只记录了一个session

在docker里使用tomcat7 + redis实现session共享_第1张图片

 

参考文章:https://github.com/ran-jit/tomcat-cluster-redis-session-manager

你可能感兴趣的:(redis,docker,tomcat)