Apache和Tomcat整合之道
发表于:2007-07-01来源:作者:点击数:
标签:
准备工作 1. 安装 java , apache, tomcat 并设置好环境变量 2. 这里假设apache的安装目录为C:\Apache Group\Apache2, Tomcat 的安装目录为C:\Apache Group\Tomcat 5.0 3. 下载mod_jk,放在任意目录下,这里我放在C:\apache\ConnApaTom下 做完准备工作后就开
准备工作
1. 安装
java, apache,
tomcat并设置好环境变量
2. 这里假设apache的安装目录为C:\Apache Group\Apache2,
Tomcat的安装目录为C:\Apache Group\Tomcat 5.0
3.
下载mod_jk,放在任意目录下,这里我放在C:\apache\ConnApaTom下
做完准备工作后就开始二者的整合
1. 在apache的httpd.conf中加入以下内容
# Load mod_jk moduleLoadModule jk_module ConnApaTom\mod_jk-1.2.8-apache-2.0.52.so# Declare the module for <IfModule directive>#AddModule mod_jk.c# Where to find workers.propertiesJkWorkersFile "C:\Apache Group\Apache2\ConnApaTom\workers.properties"# Where to put jk logsJkLogFile "C:\Apache Group\Apache2\ConnApaTom\mod_jk.log"# Set the jk log level [de
bug/error/info]JkLogLevel info# Select the log formatJkLogStampFormat "[%a %b %d %H:%M:%S %Y] "# JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories# JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T"# Send servlet for context /examples to worker named worker1JkMount /*/servlet/ worker1 #(1)# Send JSPs for context /examples to worker named worker1JkMount /*.jsp worker1 #(2)JkUnMount /*.gif worker1JkUnMount /*.jpg worker1
2. 注意上面的(1),(2)句,后面再说。这里先在C:\Apache Group\Apache2\ConnApaTom下建立一个文件workers.properties,内容如下
workers.tomcat_home="C:\Apache Group\Tomcat 5.0" #让mod_jk模块知道Tomcatworkers.java_home="C:\j2sdk1.4.2_08" #让mod_jk模块知道j2sdk#worker.list=worker1 #list of workers, more workers can be sperated by @#,@#.When starting up, the web server plugin will inst
antiate the workers whose name appears in the worker.list property, these are also the workers to whom you can map requests.# entries for worker1worker.worker1.type=ajp13 #类型worker.worker1.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改worker.worker1.port=8009 #工作端口,若没占用则不用修改worker.worker1.lbfactor=1 #代理数,不用修改
3. 这里我的文件的根目录是D:\www,下面就通过修改apahe和tomcat的配置来实现在此目录下静态网页由apache来处理,动态网页由tomcat来处理:
为此首先要解决的是改变tomcat的根目录,在tomcat5.0以上的做法与以前的版本不同,写一个context片断,放在$CATALINA_HOME/conf/[enginename]/[hostname]/ 下,这里写在下文件www.xml,其内容为<Context path="" docBase="D:\www"></Context>,这里就把tomcat的根目录改到D:\www。对apache,其Documentroot也设为D:\www,(1)句JkMount /*.jsp worker1实现了将D:\www里的*.jsp就交由tomcat来处理此时tomcat还不能对servlet进行处理,解决这个问题需要做三个方面的工作:a. 在apache的http.conf里加入Alias语句,如在D:\www下建一个文件夹,servletPrg专门用来放servlet程序,#Alias, so the servlets can be send to tomcatAlias /servletProg/ "D:/www/servletProg/"<Directory "D:/www/servletPro"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all </Directory>
b. 在http.conf里加入:JkMount /*/servlet/* worker1,也就第(2)句
c. 在tomcat里再写一个context片断,<Context path="/servletProg" docBase="D:\www ervletProg" reloadable="true" debug="0"></Context>
这样,apache就可以把servletPrg里的servlet传给Tomcat了。
原文转自:http://www.ltesting.net