1. win-Apache-Tomcat-mod_jk
1.1.1. 工具下载
- 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的安装,略……
1.1.2. Apache配置
-
配置mod_jk.so
将tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip解压,并找到其中mod_jk.so文件,将其放至Apache24\modules文件夹中 -
配置httpd.conf
在Apache24\conf目录下找到httpd.conf,增加如下代码:
Include conf/mod_jk.conf
- 配置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
- 配置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,但是会丢失回话信息
1.1.3. Tomcat配置
- 配置server.xml
在conf目录下找到server.xml文件,做如下修改,其中jvmRoute和workers.properties中的worker一致
在tomcat1中:
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat1">
在tomcat2中:
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat2">
- 将以下注释掉的代码打开,启用全局会话复制功能
每个tomcat中:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- 配置运行项目
需要在集群下运行的项目的web.xml文件结束标志/web-app前中加入
<distributable/>
- 启动多个tomcat
如果你在同一台服务器上配置多个tomcat还需要做以下配置
4.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"/>
4.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/>节点删除
至此,配置全部完成
网友评论