加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

发布时间:2019-06-21 05:07:38 所属栏目:业界 来源:拜托了王教授
导读:什么是会话保持 会话是指一个终端用户与交互体系举办通信的进程,好比从输入账户暗码进入操纵体系到退出操纵体系就是一个会话进程。会话较多用于收集上,TCP的三次握手就建设了一个会话,TCP封锁毗连就是封锁会话。 Http协议是一种无状态协议,以是必要使
副问题[/!--empirenews.page--]

 什么是会话保持

会话是指一个终端用户与交互体系举办通信的进程,好比从输入账户暗码进入操纵体系到退出操纵体系就是一个会话进程。会话较多用于收集上,TCP的三次握手就建设了一个会话,TCP封锁毗连就是封锁会话。

Http协议是一种无状态协议,以是必要行使Session机制来生涯用户的状态,好比登录状态、常用信息等。

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

Session用于生涯一次会话的相干信息,可以实此刻多个页面之间共享这些数据。

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

譬喻:你打开淘宝登录了小我私人账号,纵然你赏识了再多的店肆宝物,切换了许多的页面,用户名是稳固的,这个就是Session起的浸染。直到你封锁赏识器,Session被烧毁,才会破除去之前的登录记录。

本日和各人分享“Nginx+tomcat实现负载平衡的会话保持”就是实现:假如网站某个负载节点挂掉,哀求被分派到新节点Session也会同步过来,实现会话保持,由此担保用户无感知的赏识。

实现道理

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

  • 行使Manager工具实现HTTP会话打点
  • DeltaManager作为会话打点器
  • 用户会见nginx,nginx负载平衡到tomcat,用于Tomcat集群的会话打点器,将全部session会话的改变同步给集群中的每一个节点,实现会话复制。

尝试设置

Nginx设置

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

测试情形单台处事器开了两个tomcat,一台对应8080端口,另一台对应8090端口。

建设TomcatA TomcatB,别离设置tomcat server.xml

复制以下内容到 Engine下

添加此模块:

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
  2.  channelSendOptions="8"> 
  3.  <Manager className="org.apache.catalina.ha.session.DeltaManager" 
  4.  expireSessionsOnShutdown="false" 
  5.  notifyListenersOnReplication="true"/> 
  6.  <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
  7.  <Membership className="org.apache.catalina.tribes.membership.McastService" 
  8.  address="228.0.0.4" 
  9.  port="45564" 
  10.  frequency="500" 
  11.  dropTime="3000"/> 
  12.  <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
  13.  address="192.168.224.145" 
  14.  port="4001" 
  15.  autoBind="100" 
  16.  selectorTimeout="5000" 
  17.  maxThreads="6"/> 
  18.  <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
  19.  <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
  20.  </Sender> 
  21.  <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
  22.  <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
  23.  </Channel> 
  24.  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 
  25.  filter=""/> 
  26.  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
  27.  <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 
  28.  tempDir="/tmp/war-temp/" 
  29.  deployDir="/tmp/war-deploy/" 
  30.  watchDir="/tmp/war-listen/" 
  31.  watchEnabled="false"/> 
  32.  <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 
  33.  <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
  34.  </Cluster> 

备注:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读