1. 工具准备
下载64位Tomcat,本例使用版本为7.0.59,下载地址为 http://pan.baidu.com/s/1jG49MKm,7ekx
下载64位Apache,本例所用版本为2.2.19,下载地址为 http://pan.baidu.com/s/1lTqiU,g1qv
下载64位mod_jk,本例所用版本为1.2.30,下载地址为 http://pan.baidu.com/s/1bnxw9h9,gzcs
2. Apache配置
(1). 下载之后的压缩包名为httpd-2.2.19-win64.rar;
(2). 将该包解压至一个目录,如我的目录为D:\Apache2.2.19;
(3). 修改conf文件夹下的httpd.conf文件:将文件中的/httpd-2.2-x64全部替换为自己的解压目录,如D:/Apache2.2.19,注意这里的路径中必须使用斜杠“/”;将#LoadModule rewrite_module modules/mod_rewrite.so这一行最前面的#去掉。
(4)执行安装命令。通过命令行进入自己的安装目录下的bin文件夹,如D:\Apache2.2.19\bin,执行命令httpd.exe -k install,(如不成功用管理员打开),这样就把apache加入了系统服务,默认服务名为Apache2.2。启动服务的命令为httpd.exe -k start。
(5). 测试安装是否成功。开启服务,运行Apache服务器后,打开浏览器输入http://localhost/,如果页面显示It works!,则表示安装成功,Apache服务器可以正常使用。
3. Tomcat配置
在server.xml配置文件的service段中添加如下配置:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
4. Apache通过mod_jk连接Tomcat
(1). 在conf/httpd.conf文件中添加如下配置:
# 加入下面一句话指定mod_jk配置文件路径
include "D:/Program Files/Apache Software Foundation/Apache2.2/conf/mod_jk.conf"
(2). 在conf目录下新建mod_jk.conf文件,内容如下:
#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定uri的请求处理方
JkMountFile conf/uriworkermap.properties
#继续添加一些配置
JkLogFile logs/mod_jk.log
JkLogLevel warn
(3). 在conf目录下新建worker.properties文件,其内容如下:
#
# 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=8109
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
(4). 以上的 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 这行配置。
接下来便是 URI 的映射配置了,我们需要指定哪些链接是由 Tomcat 处理的,哪些是由 Apache 直接处理的,看看下面这个文件你就能明白其中配置的意义。继续在conf目录下新建uriworkermap.properties文件,其内容如下:
/*=DLOG4J
/jkstatus=status
!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J
所有的请求都由 DLOG4J 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号是什么意思呢?感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。
5. 测试
在浏览器中输入localhost/jkstatus查看status,输入localhost/examples/jsp查看tomcat上的样例
如有问题可参考这位大哥的文章:http://blog.csdn.net/lubiaopan/article/details/8936371,还包括Tomcat集群中Session的共享配置,亲测可通。