四、Apache与Tomcat 整合
Tomcat本身已经提供了Http服务,该服务默认的端口是8080,装好Tomcat后,通过8080端口可以直接使用Tomcat 解析网页。通过整合可以实现以下三个功能:
a. 提升对静态文件的处理性能
b. 利用Web服务器来做负载均衡以及容错
c. 无缝的升级应用程序
事实上这三点对一个web网站来说是非常重要的,我们希望我们的网站不仅速度快,而且要稳定,不能因为某个Tomcat宕机或者是升级程序导致用户访问不了,而能完成这几个功能的最好的Http服务器就只有Apache的Http Server了,它跟Tomcat的结合是最紧密和可靠的。
下面就介绍用JK方法实现Apache和Tomcat整合在一起,还有两种方法可以通过Apache自带的模块实现:mod_proxy和mod_proxy_ajp,后两种比较简单,可以参阅这里及这里。
1. 下载tomcat-connectors-1.2.30-src.tar.gz
到Apache官网下载,详细见这里。
2. 编译安装
将下载好的源码包放到/usr/local目录下
# cd /usr/local
# tar – zxvf tomcat-connectors-1.2.30-src.tar.gz
# cd tomcat-connectors-1.2.30-src/native
# ./configure –with-apxs=/usr/local/apache/bin/apxs //对应apache的安装目录
# make
3. 复制模块到apache的模块目录
# cd apache-2.0/
# cp mod_jk.so /usr/local/apache/modules
4. httpd.conf对JK的配置
httpd.conf是Apache服务器的配置文件,用来加载JK模块以及指定JK配置文件信息
# vi /usr/local/apache/conf/httpd.conf
添加下面两行内容
LoadModule jk_module modules/mod_jk.so
Include conf/extra/mod_jk.conf
5. 配置jk_configure
# vi /usr/local/apache/conf/extra/mod_jk.conf
添加下面的内容
# Where to find workers.properties
JkWorkersFile /usr/local/apache/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/apache/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat “[%a %b %d %H:%M:%S %Y]”
# JkRequestLogFormat set the request format
JkRequestLogFormat “%w %V %T”
# JkOptions indicate to send SSL KEY SIZE,
#JkOptions +ForwardKeySize +ForwardURICompat –ForwardDirectories
# Send JSPs for context /examples to worker named worker
JkMount /*.jsp worker1
JkMount /*.do worker1 //这句话负责解析.do的Servlet文件,一定要加上.do后缀才能解析Servlet文件
JkMount /examples/* worker1
说明:这里主要指定一些配置文件路径,第一条是workers.properties到tomcat服务器的连接定义文件,第二、三、四、五条都是设置日志相关的信息,第六条设置转发相关的一些参数,第七条是设置URL前缀的一些信息,详细的设置参照。