搭建Apache Server +Tomcat 简单集群环境,实现session复制
2016-05-27 20:18
627 查看
搭建Apache Server +Tomcat 简单集群环境,实现session复制
注意:
按以下步骤执行,若tomcat servers都在同一台机器上能成功进行请求分发及session复制,若tomcat servers
不在同一台机器上session没有成功复制,原理尚未找出,可能和multicast有关(2台机器可能无法multicast 通讯,尚不明白啊。。。)
简单原理:
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模块需要引用该文件。
详细步骤:
安装Apache Server 2.4.2
安装 Tomcat 8.0.35(/tomact1及/tomcat2,2个tomcat在同一台机器上需要修改server.xml里面的port以避免端口冲突)
下载Mod JK Tomcat connector 1.2.4(tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip)
解压 tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip 并将mod_jk.so Copy到Apache24\modules目录下
在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
修改httpd.conf文件,在文件末尾加入:
# JK module settings
Include conf/mod_jk.conf
修改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不会复制!!!
没研究原因!!!
注意:
按以下步骤执行,若tomcat servers都在同一台机器上能成功进行请求分发及session复制,若tomcat servers
不在同一台机器上session没有成功复制,原理尚未找出,可能和multicast有关(2台机器可能无法multicast 通讯,尚不明白啊。。。)
简单原理:
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模块需要引用该文件。
详细步骤:
安装Apache Server 2.4.2
安装 Tomcat 8.0.35(/tomact1及/tomcat2,2个tomcat在同一台机器上需要修改server.xml里面的port以避免端口冲突)
下载Mod JK Tomcat connector 1.2.4(tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip)
解压 tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip 并将mod_jk.so Copy到Apache24\modules目录下
在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
修改httpd.conf文件,在文件末尾加入:
# JK module settings
Include conf/mod_jk.conf
修改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不会复制!!!
没研究原因!!!
相关文章推荐
- tomcat8 故障排查
- Jsp之二 tomcat安装配置使用
- Jsp之二 tomcat安装配置使用
- Jsp之二 tomcat安装配置使用
- Tomcat 部署Web应用 的三种方式
- centos7下搭建tomcat+openjdk+mysql+vsftpd+nginx
- Nginx和Tomcat负载均衡实现session共享(转)
- CAS (1) —— Mac下配置CAS到Tomcat(服务端)(转)
- Tomcat的部署和路径的加载
- Tomcat配置log4j生成日志文件
- zabbix监控tomcat
- Linux下安装Tomcat服务器和部署Web应用
- linux下tomcat安全配置
- tomcat(17)启动tomcat
- 修改tomcat,jvm内存
- Tomcat服务器启动闪退,非jdk原因
- jetty和tomcat区别与应用场景
- 虚拟机 centos7 宿主机打不开tomcat项目
- SecurityException: class signer information does not match signer……异常,解决办法
- 集成Tomcat插件到Eclipse ,热部署