nginx集群会话同步共享Session

ip_hash(绑定ip)

每个请求都是按访问ip的hash结果分配,这样做每个访客都会固定访问一个后端服务器,可以解决session不同步的问题。

一.配置ng.conf文件

在nginx根目录下进入/conf.d目录,并配置ng.conf文件访问多个tomcat,配置如下。

nginx集群会话同步共享Session_第1张图片
二、tomcat新建jsp页面

1.在idea里新建一个项目,添加一个jsp页面,在页面里使用session.getId()

nginx集群会话同步共享Session_第2张图片

2.将这个项目打成war包,然后扔到nginx使用的tomcat目录下的webapps里解压

nginx集群会话同步共享Session_第3张图片
nginx集群会话同步共享Session_第4张图片
三、配置tomcat

1.在conf目录下server.xml的标签里添加如下内容

channelSendOptions="8">

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

address="228.0.0.4"

port="45564"

frequency="500"

dropTime="3000"/>

address="auto" #(默认为auto,如果不行可以改为tomcat主机的IP地址)

port="4000"

autoBind="100"

selectorTimeout="5000"

maxThreads="6"/>

filter=""/>

tempDir="/tmp/war-temp/"

deployDir="/tmp/war-deploy/"

watchDir="/tmp/war-listen/"

watchEnabled="false"/>

nginx集群会话同步共享Session_第5张图片

2.同时在webapps目录下web.xml里的中添加如下的标签

nginx集群会话同步共享Session_第6张图片

四.测试tomcat SessionId

1.启动tomcat

nginx集群会话同步共享Session_第7张图片
  1. 访问jsp页面

nginx集群会话同步共享Session_第8张图片

两个tomcat查询到的SessionID相同即可

你可能感兴趣的:(tomcat相关,nginx,java,tomcat)