apache和tomcat整合详解

最近闲着没事,想起之前的项目放在一个低配的服务器上,部署在一个tomcat上,访问速度过慢,而且由于之前公司的项目都是别人部署,不知道部署到底是个什么样的步骤,今天特来试一试。

一、准备。

1.系统环境:Microsoft Windows XP

2.jdk:jdk1.6.0_24

下载地址:https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

3.apache:httpd-2.2.17-win32-x86-no_ssl.msi

下载地址:http://httpd.apache.org/download.cgi#apache22 ,选择 httpd-2.2.17-win32-x86-no_ssl.msi

4.tomcat:apache-tomcat-6.0.32.zip

下载地址:http://tomcat.apache.org/download-60.cgi,选择zip包下载。

5.jk:mod_jk-1.2.31-httpd-2.2.3.so

下载地址:http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/,选择mod_jk-1.2.31-httpd-2.2.3.so

注:  mod_jk-**.so的版本必须支持apache版本,不然会没用!

二、安装。

安装过程不需要注重安装顺序。

1.安装jdk

安装好后,配置环境变量,以下是我的配置:

JAVA_HOME:C:/Program Files/Java/jdk1.6.0_24

PATH添加:%JAVA_HOME%/BIN;%JAVA_HOME%/JRE/BIN;

CLASSPATH:.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;

2.安装tomcat

把tomcat解压到某个目录

我的目录:D:/Program Files/tomcat

配置环境:

CATALINA_BASE=D:/Program Files/tomcat

CATALINA_HOME=D:/Program Files/tomcat

CLASSPASS=%CATALINA_HOME%/lib/servlet-api.jar

3.安装apache

此处注意,如果你本机已经安装了IIS并且占用了80端口,你可以选择禁用IIS或者给IIS指定其他端口,或者给apache指定其他端口,根据实际情况设置。在apache安装过程中要设置Network Domain和ServerName,一般会自动默认为你的计算机名,设置你的Email地址(这个一定要设置,否则apache启动不了)。

安装完成后,如果apache用的是80端口,那么在浏览器输入:http://localhost,如果使用的是其他端口,例如81,则输入http://localhost:81,将会看到apache的成功页面。此时apache已经运行,在系统托盘可以看到它的图标,双击打开可以对apache服务进行控制,便于下面的安装,请先stop停掉服务。

4.安装jk

将mod_jk-1.2.31-httpd-2.2.3.so重命名为mod_jk.so复制到C:/Program Files/Apache Software Foundation/Apache2.2/modules子目录下。

三、修改配置文件。

1.在tomcat目录找到server.xml,我的在:D:/Program Files/tomcat/conf

之间添加以下代码:

docBase为我的项目存放地址。path为项目名称,这里我选择为空。

2.在C:/Program Files/Apache Software Foundation/Apache2.2/conf下,添加workers.properties文件,内容如下:

#指定Tomcat的主目录以及JDK
workers.tomcat_home=D:/Program Files/tomcat  #安装的Tomcat的根目录
workers.java_home=C:/Program Files/Java/jdk1.6.0_24 #安装的JDK的根目录
ps=/
#Worker列表
worker.list= ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

3.修改apache的httpd.conf文件,我的目录:C:/Program Files/Apache Software Foundation/Apache2.2/conf

在httpd.com配置文件末尾添加以下内容:

LoadModule jk_module modules/mod_jk.so 
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log" 
JkLogLevel info 
JkMount /servlet/* ajp13 
JkMount /*.jsp ajp13
JkMount /*.action ajp13
Alias /项目名称 "项目具体地址"
#我的是: Alias /salecost "E:/salecost"

#将所有servlet 和jsp请求通过Ajp13的协议送给Tomcat,让Tomcat来处理
#------------------------------------
#JkMount指示,将哪些请求发到Tomcat,如果在其它目录也有servlet,也需在这里映射,
#比如,如果/axis/下面有很几个servlet,可以分别映射,也可以JkMount /axis ajp13全部映射,所有/axis下的访问,都交给tomcat. 
#另外,如果要用tomcat的admin管理,还需要JkMount /admin/* ajp13
#注意,JkMount后面的ajp13是Worker名,应该在下面的workers.properties中定义.

注:jdMount就是把要给tomcat处理的文件,配置出来。我的项目用s2sh开发,其中运用struts2的配置文件,修改了action的后缀,所以,如果这里修改了的朋友,需要注意一下,另外在我实际项目中,一部分路径在配置文件中,所以这类请求路径均为:/search?action=....,所以也得把这类配置给tomcat,否则它不会交由tomcat处理,我加了:JkMount /search ajp13 就可以了。这类的配置请注意是否和项目中web.xml中的配置一样。详细请根据自己情况设定了。
 

还需要修改httpd.conf文件中Directory 的路径:

#
# This should be changed to whatever you set DocumentRoot to.
#
  #这里配置和tomcat中docBase一样的路径。

修改DocumentRoot的路径为:"E:/salecost"

这样,启动tomcat和apache,访问:http://localhost:8080和http://localhost都可以访问你的项目了。

注意,如果访问http://localhost路径的时候,访问的不是项目,而是出现了项目的目录,需要在以下地方修改路径,让服务器找到项目的访问首页。

在C:/Program Files/Apache Software Foundation/Apache2.2/conf下httpd.conf配置文件中修改DirectoryIndex,如下:


    DirectoryIndex WEB-INF/jsp/login/login.jsp

WEB-INF/jsp/login/login.jsp是我的访问首页,重启apache,访问正常。

至此,apache与tomcat的整合已经成功了。

 

你可能感兴趣的:(apache和tomcat整合详解)