Tomcat集群会话同步并使用Nginx随机分配Tomcat服务器(超级详细!!!)

在部署完Tomcat和Nginx之后,我们就可以开始让Tomcat实现会话同步并使用Nginx随机分配

如果有需要了解部署的朋友可以去看Tomcat及Nginx的部署

一、Nginx实现随机分配Tomcat服务器

1.配置Nginx实现两个Tomcat服务器的跳转

注意:此时配置Nginx的位置在根目录下的usr中,因为解压完成之后,会在usr下生成一个Nginx,朋友们不要搞混,不是Nginx之前安装到的目录底下

cd usr/local/nginx

在这里插入图片描述

cd conf/

在这里插入图片描述

vim nginx.conf

在这里插入图片描述

在文件中的添加如下,添加完之后保存并退出

upstream mytomcat{
	server 118.31.55.xx:8080; #写自己部署的两个Tomcat的访问地址就好了,我这里都部署在同一台主机了
	server 118.31.55.xx:8090;
	}

proxy_pass http://mytomcat;

在这里插入图片描述

测试配置文件的编写是否正确

先进入当前nginx目录下的sbin目录
cd sbin
./nginx -t

在这里插入图片描述
启动Nginx

./nginx

在这里插入图片描述

在启动过后可以重启Nginx

./nginx -s reload

在这里插入图片描述

好啦好啦,到这里Nginx随机分配Tomcat服务器的配置就完成啦。

2.测试Nginx能否实现跳转

如果是在同一台虚拟机或者是服务器上安装的两个Tomcat和Nginx的朋友,在浏览器测试时就输入主机的ip地址就好,然后就会进行随机分配

如果是在不同虚拟机上安装的Tomcat和Nginx的朋友,在测试时要输入安装Nginx的那台虚拟机的ip地址

有的朋友在启动Nginx后,在浏览器上访问的结果是这样
在这里插入图片描述
可能出现的原因:
①Nginx的配置文件修改错了地方,可能修改的nginx.xml文件是在nginx的安装目录下的;而不是在安装好nginx后在根目录下的usr里的nginx.xml文件;
②启动Tomcat时没有关闭防火墙;

二、在Tomcat服务器上部署项目

这里我将在IDEA上把项目打包,然后部署在Tomcat上,不需要参看的朋友可以直接跳到第三部分

打开IDEA,在IDEA上打好war包然后部署到服务器上
在这里插入图片描述

添加结束之后
在这里插入图片描述
进行打包操作
在这里插入图片描述

在这里插入图片描述
打好war包之后,会有一个war包在out文件下
在这里插入图片描述
我们就可以将这个war包部署在Tomcat服务器上

访问Tomcat,然后点击Tomcat的 Manager App,输入自己设置的账号和密码
忘记账号密码的朋友可以看设置Tomcat的账号密码
在这里插入图片描述

在图中的这个地方进行部署
在这里插入图片描述
部署完毕之后,在上面应用程序就会出现这个项目
在这里插入图片描述
点击即可访问
在这里插入图片描述

附带这个测试项目的代码:

  <head>
    <title>$Title$</title>
  </head>
  <body>
TomcatA  会话id为:<%= session.getId()%>
  </body>
</html>

三、Tomcat集群的会话同步

终于要来到了实现Tomcat集群会话同步这一步了
下面我将分成两种情况来实现:
①多个Tomcat在同一台主机上部署
②Tomcat在不同的主机上部署

1.Tomcat在同一台主机上

打开Tomcat的配置文件夹conf里的server.xml

vim conf/server.xml

在这里插入图片描述
在文件中放入

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">

          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="4000"
                      autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>

注:要注意这些放置的位置,应该放在下面这行的下面

 <Engine name="Catalina" defaultHost="localhost">

在这里插入图片描述
两台Tomcat都需要放入这个,此时我们是在同一台主机上,所以要修改四个地方让其不一样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将这四个地方修改即可

然后配置已经部署的war中的web.xml

在Tomcat的安装目录下

cd webapps

在这里插入图片描述

vim xxxx/WEB_INF/web.xml

在这里插入图片描述
两个Tomcat中都要添加

<distributable/>

在这里插入图片描述
这样就实现了Tomcat集群会话同步,到浏览器上直接访问Nginx的ip地址就可以验证

注:Tomcat都必须要启动,然后在各自的Tomcat服务器上都要点开部署好的项目,这样效果才会明显,我们此刻就会注意到两个Tomcat的session是一样的

2.Tomcat在不同的主机上

在Tomcat的配置文件中都要加入前面的那一大段,只是修改的地方不同
在这里插入图片描述
只需要修改一个地方,修改配置文件的这个地方,将address=“auto” 改成本主机的ip地址即可
在这里插入图片描述
剩下的步骤都是相同的


因为是刚刚开始写文章,有很多地方写的不好,想写的地方有时候没有写到,有的地方写的太多繁琐,希望大家多多包涵

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值