搭建Apache Server +Tomcat 简单集群环境,实现session复制

本文介绍如何通过Apache Server和Tomcat搭建简单的集群环境,并实现Session复制。文章详细记录了安装配置过程,包括Mod_JK模块的使用、httpd.conf和server.xml等文件的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建Apache Server +Tomcat 简单集群环境,实现session复制

注意:
     按以下步骤执行,若tomcat servers都在同一台机器上能成功进行请求分发及session复制,若tomcat servers 不在同一台机器上session没有成功复制,原理尚未找出,可能和multicast有关(2台机器可能无法multicast 通讯,尚不明白啊。。。)

简单原理:
  1. Apache Server 作为frontend server,tomcat 作为backend server,Apache Server需要使用Mod JK模块和backend server(tomat)建立连接
     2.  需要修改httpd.conf文件以enable Mod JK模块
     3.  定义workers.properties配置文件指定backend servers相关信息,Mod JK模块需要引用该文件。
详细步骤:
  1. 安装Apache Server 2.4.2
  2. 安装 Tomcat 8.0.35(/tomact1及/tomcat2,2个tomcat在同一台机器上需要修改server.xml里面的port以避免端口冲突)
  3. 下载Mod JK Tomcat connector 1.2.4(tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip)
  4. 解压 tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip  并将mod_jk.so Copy到Apache24\modules目录下
  5. 在Apache24\conf目录下新建workers.properties及mod_jk.conf文件,修改文件内容如下
      workers.properties;
      
#server 列表
# worker.list = balancer,tomcat1,tomcat2
worker.list = balancer

# tomcat1(ajp13 端口号,在tomcat下server.xml配置,默认8009)
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor = 1

# tomcat2
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

# balancer(负载均衡控制器)
worker.balancer.type=lb
# 指定分担请求的tomcat
worker.balancer.balanced_workers=tomcat1,tomcat2

# Specifies whether requests with SESSION ID's
# should be routed back to the same #Tomcat worker.
#worker.balancer.sticky_session=true
worker.balancer.sticky_session =false

mod_jk.conf:

# Load mod_jk2 module
LoadModule jk_module modules/mod_jk.so

# Where to find workers.properties(引用workers配置文件)
JkWorkersFile conf/workers.properties

# Where to put jk logs(log文件路径)
JkLogFile logs/mod_jk2.log

# Set the jk log level [debug/error/info](log级别)
JkLogLevel info

# Select the log format(log格式)
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send JSPs for context / to worker named balancer(指定那些请求交给tomcat处理,"balancer"为在workers.propertise里指定的负载分配控制器)
JkMount /* balancer

  1. 修改httpd.conf文件,在文件末尾加入:

   # JK module settings
Include conf/mod_jk.conf 

  1. 修改server.xml配置文件for tomcat1 ,tomcat2如下

     tomcat1:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1" --tomcat1对应于workers.properties配置的server name

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

     tomcat2:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">  --tomcat2对应于workers.properties配置的server name

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>  --简单enable Cluster,production环境需修改配置进行优化

7.修改 context.xml配置文件for tomcat1,tomcat2,加入以下配置:

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

--Note:需加入该配置,否则请求会分发,但是session不会复制!!!
  没研究原因!!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值