您的位置:首页 > 运维架构 > Tomcat

windows下Apache2.4+Tomcat9+mod_jk负载均衡配置

2018-02-12 22:57 1676 查看

一、工具下载

JDK 8
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 
Apache 2.4 

下载地址 https://www.apachehaus.com/cgi-bin/download.plx  Tomcat 9

下载地址 https://tomcat.apache.org/download-90.cgi mod_jk 1.2.4

下载地址 http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip 注意:Apache 和 mod_jk 的版本要一致,32位64位也要一致,不然会出错Cannot load modules/mod_jk.so into server

apache和tomcat的安装,略……

二、Apache配置

1.配置mod_jk.so

将tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip解压,并找到其中mod_jk.so文件,将其放至Apache24\modules文件夹中

2.配置httpd.conf

在Apache24\conf目录下找到httpd.conf,增加如下代码:
Include conf/mod_jk.conf

3.配置mod_jk.conf

在Apache24\conf目录下建立mod_jk.conf文件,配置以下代码。
#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定workers.properties文件路径
JkWorkersFile conf/workers.properties
#日志 info debug error
JkLogFile logs/mod_jk.log
JkLogLevel debug
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.do controller
JkMount /*WEB-INF controller
JkMount /*j_spring_security_check controller
JkMount /*.action controller
JkMount /servlet/* controller
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /*.action controller
JkMount /* controller

4.配置workers.properties

在Apache24\conf目录下建立workers.properties文件,配置以下代码。
#server
worker.list=controller,tomcat1,tomcat2 #server 列表
#========tomcat1========
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=8019
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=false #回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理
worker.controller.sticky_session_force=false #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息

三、Tomcat配置

1.配置server.xml

1.在conf目录下找到server.xml文件,做如下修改,其中jvmRoute和workers.properties中的worker一致
在tomcat1中:<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat1">在tomcat2中:
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat2">
2.将以下注释掉的代码打开,启用全局会话复制功能
每个tomcat中:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

2.配置运行项目

需要在集群下运行的项目的web.xml文件结束标志/web-app前中加入
<distributable/>

3.启动多个tomcat

如果你在同一台服务器上配置多个tomcat还需要做以下配置
1.conf/server.xml文件:修改端口号 <Server port="8006" shutdown="SHUTDOWN">
<Connector port="8010" protocol="AJP/1.3" redirectPort="8444"/>
<Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8444"/>2.conf/server.xml文件:修改根目录:
<Context path="/test" docBase="E:/tomcat1/webapps/testProject"  debug="0" reloadable="true" />
<Context path="/test" docBase="E:/tomcat2/webapps/testProject"  debug="0" reloadable="true" />
此外,你也可以将要运行的项目分别放置于tomcat1和tomcat2的webapps下,并且将<Context/>节点删除

至此,配置全部完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息