日期:2014-05-17  浏览次数:20745 次

apache整合多tomcat

1. 软件准备
1.1 集成软件清单
apache-httpd:版本2.2.19,访问端口80
mod-jk:版本1.2.31
tomcat1:版本7.0,访问域名http://tomcat1.com
tomcat2:版本7.0,访问域名http://tomcat2.com

1.2 下载软件
下载tomcat,地址:http://tomcat.apache.org
下载apache-httpd,地址:http://httpd.apache.org
下载mod-jk,地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries
注:apache-httpd和mod-jk的大版本号需匹配(2.0版和2.2版)

1.3. 安装软件
安装tomcat:下载解压版,解压即可
安装apache-httpd:linux版需编译安装,window版直接执行exe安装文件
将下载的mod_jk-1.2.31-httpd-2.2.x.so文件复制到“[apache-httpd安装路径]/modules”目录

2. 配置
2.1 tomcat配置
(1) 修改tomcat端口号
目的:确保多tomcat在同一台机器上启动时,端口不会冲突
操作:修改文件“[tomcat安装目录]/conf/server.xml”文件的如下内容中的端口号,确保tomcat1和tomcat2的端口号不一样即可

<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1" ……
<Connector port="8009" protocol="AJP/1.3" ……

(2) 配置jvmRoute
目的:apache通过jvm名称来定位tomcat
操作:修改文件“[tomcat安装目录]/conf/server.xml”文件的如下内容,配置tomcat的jvmRoute

<Engine name="Catalina" defaultHost="localhost">

修改后(例:tomcat1的jvmRoute为jvm1,tomcat2的jvmRoute为jvm2)

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> 


2.2 apache配置
(1) 创建mod-jk.conf文件
目的:配置那些url请求会通过mod-jk转发
操作:创建“[apache安装目录]/conf/mod-jk.conf”文件,文件内容如下

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.19.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
#JkMount /* controller 

(2) 创建workers.properties
目的:mod-jk定位到tomcat的信息
操作:创建“[apache安装目录]/conf/workers.properties”文件,文件内容如下

worker.list=controller,jvm1,jvm2
#========jvm1========
worker.jvm1.type=ajp13
worker.jvm1.port=8009
worker.jvm1.host=127.0.0.1
worker.jvm1.lbfactor=1
#========jvm2========
worker.jvm2.type=ajp13
worker.jvm2.port=8019
worker.jvm2.host=127.0.0.1
worker.jvm2.lbfactor=1
#========controller========
worker.controller.type=lb
worker.controller.balance_workers=jvm1,jvm2
worker.controller.sticky_session=1 

(3) 创建mount.properties
目的:转发url与tomcat jmvRoute的对应关系
操作:在“[apache安装目录]/conf”目录创建mount1.properties和mount2.properties文件
mount1.properties文件内容如下

/*=jvm1 

mount2.properties文件内容如下

/*=jvm2

(4) 修改httpd.conf文件
目的:配置apache虚拟主机,实现域名转发
操作:修改“[apache安装目录]/conf/httpd.conf”文件,追加如下内容

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName tomcat1.com
    JkMountFile conf/mount1.properties
</VirtualHost>
<VirtualHost *:80>
    ServerName tomcat2.com
    JkMountFile conf/mount2.properties
</VirtualHost>
include conf/mod_jk.conf 


3. 操作
配置完毕,重启apache和tomcat
发送http://tomcat1.com 或http://tomcat1.com 请求,apache会接收到该请求,然后根据域名转发到对应的tomcat

1 楼 yave