Windows下Apache Httpd与Tomcat的整合

一.Apache HTTPD与Tomcat介绍
    Apache HTTPD(HTTP Server)是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML处理的能力。它不但功能强大,而且完全免费,并且支持市场上流行的各种操作系统                    (Windows,Linux,Mac OS)。
    Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和   其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP   规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
    Tomcat和IIS、Apache HTTPD等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

二.为什么需要整合

整合的最主要原因是为了在现有的硬件条件下提供最大的负载。

如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat对于静态的html文件、图片文件等的解析效率上不如Apache HTTPD,并且所能承受的最大并发连接数也有一定的限制。
在测试中,当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache HttpD这个web server处理。Apache HttpD与Tomcat各司其职,那么服务器的整体效率就能够得到提升。

三.整合的基本原理

作为Apache下面的子项目,Tomcat 与 Apache HttpD之间有着天然的联系。在实际操作中,主要是Apache HttpD作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache HttpD,再由apache HttpD发回用户。

在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache HttpD的请求。当apache HttpD收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache HttpD,由apache HttpD返回给客户。


准备工作:
1、  apache HTTP Server 2.2.15
http://apache.etoak.com/httpd/binaries/win32/httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi
2、  Tomcat 6.0.26
http://apache.etoak.com/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26-windows-x86.zip
3、  JDK 1.6.0._10
http://java.sun.com/javase/downloads/widget/jdk6.jsp
4、  tomcat-connectors/jk 1.2.30
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.30/mod_jk-1.2.30-httpd-2.2.3.so

安装,软件的安装顺序可以适当调整,但是jre(jdk)一定要在tomcat之前安装:
1、安装JRE(JDK)
此处选择默认安装即可,(旧版本的JDK安装完之后需要设置系统的环境变量,JRE和JDK1.5.0以后版本不设置也没关系。)安装完成之后你可以选择按照下面的示例设置你的系统环境变量:我的电脑->右键属性->常规->高级->环境变量
CATALINA_HOME=D:\Tomcat6
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
注意文件路径要改成你实际安装的路径。

2、Apache安装
此处注意,如果你本机已经装了iis并且占用80端口,务必先在服务中将iis停止或禁用。软件默认安装即可。安装过程中设置Network Domain和Server Name为localhost,设置你的email地址,下方会让你选择only for the current user或for all users。默认选择for all users。这样Apache就会占用80端口,并且做为一个系统服务开机自运行。
Apache的安装目录可以自由决定,我的是D:\Apache2.
安装完成之后,你在浏览器中输入http://localhost,将会看到Apache的成功页面. 此时Apache,已经运行,你可以在窗口的托盘看到他的图标,双击图标,在弹开的窗口选择"Open Apache Monitor",点Stop,停止Apache服务,因为下面要安装Tomcat和JK.

3、Tomcat安装
选择安装目录为了D:\Tomcat6,其余为默认安装.成功后在浏览器中输入http://localhost:8080,出现Tomcat页面表示安装成功了。关于tomcat的设置已经有很多非常详细的文章,在此就不再详述了。

4、JK的安装
把mod_jk-1.2.30-httpd-2.2.3.so拷贝到D:\Apache2\modules\下.
以上安装全部完成后,打开cmd命令提示符,运行d:\Apache\Apache2\bin\Apache.exe -t 你将会看到"Syntax OK",表示Apache配置正常.这个命令非常有用,下面在继续配置Apache的时候还会再次用到。

配置服务器:
1、配置Tomcat
查找Tomcat目录下的 conf/server.xml文件,在<host></host>中间加入以下语句以修改其默认的目录:
<Context path="" docBase="D:\wwwroot" reloadable="true" crossContext="true"/>
在这里,如果 path 不为空,则设置的是虚拟目录,path 的值为虚拟目录名。

查找目录下的conf/workers.properties文件,并对比下方文本内容,如有不同以下方内容为准修改,如果文件不存在则创建并填充以下内容。
workers.tomcat_home=D:\Tomcat6 #让mod_jk模块知道Tomcat的位置
workers.java_home=C:\Program Files\Java\jre6 #让mod_jk模块知道jre的位置
ps=\
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改

2、配置Apache
打开D:\Apache2\conf下的httpd.conf,在一系列LoadModule最后加入下面这段代码并保存,其中DocumentRoot、ServerName、DirectoryIndex这几项是原来就存在的,这里要做的是更新它们的设置。

#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "D:/Tomcat6/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "D:/Tomcat6/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析

#查找到DocumentRoot,并将其设为D:/wwwroot
DocumentRoot "D:/wwwroot" #您的站点项目所在路径,应与tomcat中的目录设置相同
#查找到ServerName,并将其设为localhost,这个因人而异
ServerName localhost
#查找到DirectoryIndex,并在其后增加index.htm index.jsp
DirectoryIndex index.html index.htm index.jsp

# 开头的行为注释,可以删除。实际上,Apache的配置可以非常灵活,你也可以采用虚拟目录的方式。

所有的修改完成这后,再次执行d:\Apache\Apache2\bin\httpd.exe -t 如果看到"Syntax OK",说明你所有配置无误,双击窗口的托盘中的图标,然后点击Start运行。在D:\wwwroot下创建一个页面index.jsp,里面简单的写几句话。
在地址栏中分别输入http://localhost/index.jsp,与http://localhost:8080/index.jsp若结果相同,Apache与Tomcat整合成功。

       

你可能感兴趣的:(apache,tomcat,httpd)