我先说明一下配置环境的大概情况:

* FreeBSD 7.0-RELEASE
* apache-2.2.9
* mod_jk-ap2-1.2.26
* diablo-jdk-1.6.0.07.02
* tomcat-6.0.16

具体的版本信息显示如下:
freebsd# pkg_info
apache-2.2.9_5     Version 2.2.x of Apache web server with prefork MPM.
apache-tomcat-6.0.16 Open-source Java web server by Apache, 6.x branch
diablo-jdk-1.6.0.07.02 Java Development Kit 1.6.0_07.02
mod_jk-ap2-1.2.26   Apache2 JK module for connecting to Tomcat using AJP1X

好,来看看具体的做法吧!

第一步:安装FreeBSD,采取最小化安装的步骤,随便把ports给装上吧,方便直接安装必要的ports。

这里没有什么特别的地方,只是提醒一下,安装完成后注意要更新到最新的ports tree !

由于是最小化安装,所以需要通过ports安装下面几个package:

* csup(cvsup的版本)
* portupgrade

完成安装后,更新ports tree,我使用了cvsup.FreeBSDChina.org 作为镜像!

第二步:安装 JDK -FreeBSD 发布的 JDK 1.6 软件包

从ports来编译JDK!

2.1 进 /usr/ports/java/diablo-jdk16 ,make,提示下载jdk文件(diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2)到 /usr/ports/distfiles 下,
通过brower 到 http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2 下载,需要agree。

2.2 make all install clean

2.3 检查安装
freebsd#  /usr/local/diablo-jdk1.6.0/bin/java -version
java version “1.6.0_07″
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

第三步:安装Tomcat

freebsd#  cd /usr/ports/www/tomcat6
freebsd#  make all install clean

在/etc/rc.conf中添加
tomcat60_enable=”YES”

第四步:安装Apache

freebsd#  cd /usr/ports/www/apache22
freebsd#  make all install clean

在/etc/rc.conf中添加
apache22_enable=”YES”

第五步:Apache 与 Tomcat 的整合

5.1 必备的组件mod_jk的安装

freebsd#  cd /usr/ports/www/mod_jk-apache2
freebsd#  make all install clean

5.2 编辑 /usr/local/etc/apache22/httpd.conf 文件,添加如下内容:
代码:

5.3 建立 mod_jk.conf 文件,内容如下:

freebsd# cd /usr/local/etc/apache22
freebsd# cp mod_jk.conf.sample Includes/mod_jk.conf
freebsd# cat Includes/mod_jk.conf
# Replace jsp-hostname with the hostname of your JSP server, as
# specified in workers.properties.
#
LoadModule jk_module libexec/apache22/mod_jk.so
<IfModule mod_jk.c>
JkWorkersFile etc/apache22/Includes/workers.properties
JkLogFile  /var/log/jk.log
JkShmFile  /var/log/jk-runtime-status
JkLogLevel error

# Sample JkMounts.  Replace these with the paths you would
# like to mount from your JSP server.
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/* ajp13
</IfModule>

* JkMount 是把tomcat中的URI与Apache的URI做一个映射,也就是说:

Apache 中的:http://localhost/jsp-examples/some-jsp-file.jsp
<—- 对应 —>
Tomcat 中的:http://localhost:<port>/jsp-examples/some-jsp-file.jsp
个人觉得应该是通过ajp13协议,而不是使用代理模式,因为tomcat的安装另外2种就是通过代理模式(2种)和ajp13协议。

5.4 创建 mod_jk 的日志文件,并设定其归属的用户和组:

freebsd#  touch /var/log/mod_jk.log
freebsd#  chown www:www /var/log/mod_jk.log

5.5 建立 workers.properties 文件:

freebsd# cd /usr/local/etc/apache22
freebsd# cp workers.properties.sample Includes/workers.properties
freebsd# cat Includes/workers.properties
# Incredibly simple workers.properties file, intended for connecting
# to one host, via AJP13.  See the tomcat documentation for
# information on more exotic configuration options.
#
# Change jsp-hostname to the hostname of your JSP server.
#

worker.list=ajp13

worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

5.5 更改 workers.properties 文件归属的用户和组:

freebsd# chown www:www workers.properties

第六步:进行测试

6.1 启动服务

freebsd#  /usr/local/etc/rc.d/tomcat6 start
Starting tomcat60.
freebsd#  /usr/local/etc/rc.d/apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.

6.2 测试

http://localhost/ —> 出现Apache的信息:It works!
http://localhost/index.jsp —> 出现Tomcat欢迎页面

这样就说明Apache将JSP的处理交给了Tomcat进行了!

参考文章:
Apache HTTP Server 与 Tomcat 的三种连接方式介绍