apache http server 与tomcat 多域名集成(连接) 配置步骤准备工作:下载tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip
一、配置apache
JK 的配置最关键的有三个文件,在pache 的 conf 目录下,分别是
httpd.conf
Apache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息
workers.properties
到 Tomcat 服务器的连接定义文件
uriworkermap.properties
URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,你也可以直接在
httpd.conf 中配置这些 URI,但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动 Apache 服务器。
1. 配置httpd.conf
在此配置文件末尾添加以下配置信息,加载jk
# (httpd.conf)
# 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk.so
#
# Configure mod_jk
#
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
2. 配置workers.properties
们配置了两个类型为 ajp13 的 worker 分别是 s1 和 s2,它们指向同一台服务器上运行在两个不同端口 8109 和 8209 的 Tomcat 上。接下来我们配置了一个类型为 lb(也就是负载均衡的意思)的 worker,它的名字是 DLOG4J,这是一个逻辑的 worker,它用来管理前面配置的两个物理连接 s1 和 s2。最后还配置了一个类型为 status 的 worker,这是用来监控 JK 本身的模块。有了这三个worker 还不够,我们还需要告诉 JK,哪些 worker 是可用的,所以就有worker.list = DLOG4J, status这行配置。
#
# workers.properties
#
# list the workers by name
worker.list=DLOG4J, status
# localhost server 1
# ------------------------
worker.s1.port=8009
worker.s1.host=localhost
worker.s1.type=ajp13
# localhost server 2
# ------------------------
worker.s2.port=8209
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.stopped=1
worker.DLOG4J.type=lb
worker.retries=3
worker.DLOG4J.balanced_workers=s1, s2 worker.DLOG4J.sticky_session=1
worker.status.type=status
3. 配置uriworkermap.properties
/*=DLOG4J
/jkstatus=status
!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J
URI 映射配置,需要指定哪些链接是由 Tomcat 处理的,哪些是由 Apache 直接处理的,所有的请求都由 DLOG4J 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号是什么意思呢?感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。
4. 配置虚拟主机
DocumentRoot
"D:\eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\cehui"
ServerName main
ServerAlias main
JkMount /*.htm DLOG4J
JkMount /*.do DLOG4J
DocumentRoot
"D:\eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\cehui\lz"
ServerName lz
ServerAlias lz
JkMount /*.htm DLOG4J
JkMount /*.do DLOG4J
配置了两个基于域名的虚拟主机
需要注意的是虚拟主机中也需要指定那些内容需要由jk转到tomcat处理,否则动态页面会出404错误。
二、配置tomcat
docBase="D:\eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ wtpwebapps\cehui" path="" reloadable="false"/> docBase="D:\eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ wtpwebapps\cehui" path="/" reloadable="true" source="org.eclipse.jst.jee.server:cehui"/> 配置了一个基于主机名(域名)的虚拟主机,并将多个主机名捆绑到当前虚拟主机上,捆绑的主机名以多个Alias列出即可。 Tomcat的server.xml文件,在初始状态下,只包括一个虚拟主机,但是它容易被扩充到支持多个虚拟主机。增加虚拟主机只要增加完整Host 标签即可。每一个Host元素必须包括一个或多个context元素,所包含的context元素中必须有一个是默认的context,这个默认的context的显示路径应该为空(例如,path="")。