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

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

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

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

ifconfig

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

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

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

然后就是将项目复制到相应的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

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

   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />     
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" 
        host="192.168.217.130"       
        port="6379"                 
        password="123456"            
        database="0"                 
        maxInactiveInterval="60" />
</Context>

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

上传后的

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

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

cd /bin

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

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

vim index.jsp

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

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

cd /conf

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

<Context path="" docBase="/usr/local/src/tomcatA/webapps/TestWeb" debug="0" reloadable="true" />

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

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

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

来到nginx的配置文件.

        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共享配置.如果在配置的过程中出现问题的,在下面评论即可.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值