Linux下搭建Tomcat集群结合Redis实现Session共享详细教程

之前搭建了Linux的Tomcat集群,放了测试项目,现在结合Redsi实现会话共享.

环境搭建:CentOS7,Nginx,Tomcat集群,Redis,SecureSRT,RedisClient.

首先查看本地CentOS的IP地址.

ifconfig

一 在Eclipse或IDEA下编写一个测试项目.这里我是在Eclipse下编写了一个测试项目.工程结构比较简单如下:

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第1张图片

index.jsp的内容如下:非常简单就是获取session的ID

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第2张图片

二 然后就把项目导出为war包然后上传至Linux系统里面.

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第3张图片

然后就是将项目复制到相应的tomcatA和tomcatB的webapps下,tomcat启动后会自动解压的.

cp TestWeb.war /usr/local/src/tomcatA/webapps

cp TestWeb.war /usr/local/src/tomcatA/webapps

在之前搭建的Tomcat集群里面已经配置完成了集群的.参见教程: Linux下搭建Tomcat集群详细教程.

三 :设置Redis在Tomcat的Session配置.

cd /usr/local/src/tomcatA/conf

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第4张图片

vim context.xml 添加如下的配置(Redis的配置,会话时间1分钟)参见Linux安装Redis详细教程这里设置

        
    

另外要将使用的session共享的jar包也上传至两个tomcat的lib目录下.

上传后的

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第5张图片

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第6张图片

另外一台tomcatB也需要这样配置的,相同的方式,相同的位置,自己动手配置一下的比较容易,就不说啦.

四:首先将两台tomcat分别启动查看项目是否启动成功了.(浏览器下面访问一下看一下.)

cd /bin

sh startup.sh(启动后的目录图)

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第7张图片

为了方便区分一下负载均衡到底是在哪一台的.关闭一下tomcat.然后来到TestWeb的目录下修改一下.

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第8张图片

vim index.jsp

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第9张图片

同样的方式修改一下tomcatB的.

发现在启动访问项目的时候是192.168.217.130:8081/TestWeb不是通过ip+端口号的方式,修改为ip+端口号的访问方式比较方便配置nginx的负载均衡.

cd /conf

vim server.xml(添加如下的Context标签代表一个项目)指向自己的项目的实际路径即可.

启动一下tomcatA如果配置正确是可以通过192.167.217.130:8080的方式访问项目的.

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第10张图片

同样的方式设置一下tomcatB的配置.

五:配置一下Nginx的负载均衡(加权轮询的方式)

来到nginx的配置文件.

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第11张图片

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第12张图片

        location / {
             proxy_pass http://myserver;
             proxy_set_header   Host             $host;
             proxy_set_header   X-Real-IP        $remote_addr;
             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    server {
        listen      80;
        server_name 192.168.217.130;
    upstream  myserver {
        server    192.168.217.130:8080 weight=1;
        server    192.168.217.130:8081 weight=2;
    }

至此完成了nginx的配置.

nginx的启动命令(sbin的目录下): ./nginx

关闭命令: ./nginx -s stop

运行过程中重载配置 : ./nginx -s reload

六 测试访问

上面用到的端口 6379/8081/8080/ 防火墙都要开放的.在tomcat启动之前先启动redis的.

 

不断刷新浏览器发现三次内1次tomcatA两次tomcatB.SessionID不会变化.查看我们比较关心的Session存储问题.

Linux下搭建Tomcat集群结合Redis实现Session共享详细教程_第13张图片

根据需要设置合理的会话时间即可.

至此完成Linux下的Tomcat集群的基于Redis的Session共享配置.如果在配置的过程中出现问题的,在下面评论即可.

你可能感兴趣的:(Linux学习,Tomcat学习,Redis,软件工具)