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.anti-gravitydesign.com