Tomcat-与Apache集成

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

预备

  • SUSE LINUX Enterprise Server 9
  • Tomcat 必须已经安装
  • JDK6 必须已经安装

安装

1、编译安装Apache

在编译安装Apache时,在安装三步曲的第一步需要做一些改动,将

1
./configure --prefix=/nfs10/nieyong/apache_1.3.33

改成

1
./configure --prefix=/nfs10/nieyong/apache_1.3.33 --enable-module=so

否则在启动Apache的时候将提示如下的错误信息:

Invalid command ‘LoadModule’ with the Apache Server

如果还想支持一些内含的模块,如:rewrite、proxy,只需要加上如下的参数:

1
--enable-module=rewrite --enable-shared=rewrite --enable-module=proxy --enable-shared=proxy

2、配置Apache

1)修改配置文件httpd.conf。
修改%APACHE_HOME/conf/httpd.conf,添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/worker.properties
JkLogFile logs/mod_jk.log
# log level:debug info error emerg
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /hello/* worker1

2)修改配置文件work.properties
修改%APACHE_HOME/conf/work.properties文件(如果不存,则建立此文件),添加如下的配置信息:

1
2
3
4
5
6
7
8
9
10
11
12
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8010
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

3、配置Tomcat。
打开%TOMCAT_HOME/conf/server.xml文件,找到如下部分:

1
2
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

将port=”8009” 改成 8010。
完成所有这些操作后,重启Apache和Tomcat即可。

验证

说明:Apache的监听端口为8989,Tomcat的监听端口为8899。

将文件 hello.war 部署至Tomcat,在浏览器中分别输入相应的地址,显示结果如下:

1、直接访问Tomcat
图1-直接访问Tomcat

2、访问Apache
图1-访问Apache

访问的结果一致,说明Tomcat与Apache的集成成功。

参考资料

1、http://tomcat.apache.org/connectors-doc/reference/workers.html
2、http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html