apache是目前Internet上應用最為廣泛的一種Web應用服務,它不僅可以完全免費得到,而且性能十分可靠,其各種功能模塊可以根據需要靈活地組合使用。同時,技術人員還可以在它現有的基礎上進行二次開發,因此備受使用者青睐。
JSP是一種較為常用的動態網頁制作技術,但Apache本身只支持靜態網頁,因此需要與其他特定的應用服務結合使用。本文要介紹的是一種將apache與Tomcat服務相結合來支持JSP動態網頁的最新實用技術,即用"apache/jk"方式支持JSP動態網頁。
起初,apache與Tomcat結合支持JSP動態網頁是通過一個名為"mod_jserv" 的插件來實現的。采用這種apache/Jserv方式配置參數十分復雜,運行效率很低,而且對SSL(一種加密傳輸方式)的支持也不理想,因此Jakarta工作組新近開發了"mod_jk"插件,它很好地彌補了mod_JServ的缺點,而且能支持apache以外的多種Web服務。
關於這種Apache/Jk方式的實現原理,大家可到http://jakarta.apache.org網站上閱讀有關資料,本文只簡單介紹其實現的方法,對原理部分不做討論。
一、在Unix平台上安裝
本文以最常用的Solaris操作系統為例進行說明。
(一)應用環境
在此,我們選用的操作系統為Solaris 2.7,而應用環境為Java 1.2(假定安裝在/usr/Java1.2目錄下)、perl 5.005(假定安裝在/usr/local/bin目錄下)和gzip(假定安裝在/usr/local/bin目錄下)。
(二)軟件包的下載、編譯與安裝
1.下載地址
在http://www.apache.org可下載最新的Apache源代碼軟件包apache_1.3.19.tar.gz。 在http://jakarta.apache.org/builds/tomcat/release/v3.2.1/src/可下載Tomcat源代碼軟件包jakarta-tomcat-3.2.1-src.tar.gz。
在http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.1/bin/可下載已編譯的Tomcat應用軟件包jakarta-tomcat-3.2.1.tar.gz。
2.編譯與安裝
假設各軟件包已下載到當前的某個工作目錄(如: /home/tmp)下,apache和Tomcat將安裝在/home目錄下。在當前目錄我們可以進行如下操作。
(1)編譯和安裝apache 應用服務
①解包
$ /usr/local/bin/gzip -dc ./ apache_1.3.19.tar.gz | tar xf -
②編譯
$ cd apache_1.3.19 $ ./configure --prefix=/home/apache-1.3.19 --with-perl=/usr/local /bin/perl --enable-module=so
假設perl的解釋命令安裝在/usr/local/bin 目錄下,Apache服務安裝在/home/apache-1.3.19 目錄下。
$ su
# make install
(2)編譯與安裝mod_jk插件
①解包
$ /usr/local/bin/gzip-dc jakarta-tomcat-3.2.1-src.tar.gz|tar xf- 軟件開發網
②編譯
$ cd jakarta-tomcat-3.2.1-src /src/native/apache1.3 $ /home/apache-1.3.19/bin/apxs -o mod_jk.so -DSOLARIS -I../jk -I/ usr/java1.2/include-I/usr/Java1.2/include/ solaris -lposix4 -c *.c ../jk/*.c http://www.mscto.com
假定Java安裝在/usr/Java1.2目錄下。
③安裝 軟件開發網
$ su # /home/apache-1.3.19/bin /apxs -i -a -n jk mod_jk.so
當屏幕顯示如下內容時,表示安裝成功。 http://www.mscto.com
cp mod_jk.so /home/apache-1.3.19 /libexec/mod_jk.so chmod 755 /home/apache- 1.3.19/libexec/mod_jk.so [activating module `jk in /home/apache-1.3.19/conf/httpd.conf]
(3)安裝Tomcat服務
用超級用戶身份把已編譯的Tomcat 3.2.1解包到/home目錄下即可。 http://www.mscto.com
$ su # /usr/local/bin/gzip -dc jakarta-tomcat-3.2.1.tar.gz| (cd /home;tar xf -)
3.參數配置
(1)配置apache服務
用vi命令打開apache的配置文件httpd.conf。 http://www.mscto.com
# cd /home/apache-1.3.19/conf # vi httpd.conf
在末尾添加以下內容。
JkWorkersFile /home/jakarta-tomcat-3.2.1
/conf/workers.propertIEs
JkLogFile /home/apache-1.3.19/logs/mod_jk.log
注意: 日志文件可根據具體情況調整。
JkLogLevel warn JkMount /*.JSp ajp13 JkMount /servlet/*.JSP ajp13
注意: 關於該配置文件中其他重要的、但與Tomcat無關的參數(如Port和DocumentRoot等),可參見apache的文檔資料,本文不涉及。 軟件開發網
(2)配置Tomcat服務
首先,修改server.XML文件。這裡假定存放apache的Web網頁的根目錄為/home/htdocs。
# cd /home/jakarta-tomcat-3.2.1/conf # vi server.XML
然後,在Connectors部分嵌入如下內容。
< Connector className= "org.apache.tomcat.service. PoolTcpConnector"> < Parameter name="handler" value="org.apache.tomcat .service.connector.Ajp 13ConnectionHandler"/> < Parameter name="port" value="8009"/> < /Connector> 軟件開發網
接著,在 Special WebaPPS 部分嵌入如下內容。
< Context path=" " docBase="/home/htdocs" debug="0" > < /Context>
進一步修改workers.propertIEs文件。 軟件開發網
軟件開發網
# vi workers.propertIEs ... workers.tomcat_home= /home/jakarta-tomcat-3.2.1 ... workers.java_home=/usr/Java1.2 ... ps=/ ...
隨後,修改Tomcat 啟動和關閉命令文件。
# cd ../bin # vi startup.sh
再在"BASEDIR=`dirname $0` "語句前嵌入如下內容。
PATH=/usr/java1.2/bin:$PATH:. JAVA_HOME=/usr/java1.2 TOMCAT_HOME=/home/jakarta-tomcat-3.2.1 export PATH Java_HOME TOMCAT_HOME # vi shutdown.sh http://www.mscto.com 最後,在"BASEDIR=`dirname $0` "語句前嵌入如下內容。
軟件開發網
PATH=/usr/java1.2/bin:$PATH:. JAVA_HOME=/usr/java1.2 TOMCAT_HOME=/home/jakarta-tomcat-3.2.1 export PATH Java_HOME TOMCAT_HOME 軟件開發網 4.測試
分別啟動apache和Tomcat。
http://www.mscto.com
# /home/apache-1.3.19/bin/apachectl start # /home/jakarta-tomcat-3.2.1/bin/startup.sh 然後,編輯簡單的.JSP測試文件。
軟件開發網
# vi /home/apache/-1.3.19 /htdocs/test.jsp < html> < head> < title> This is a JSp test file! < /title> < /head> < body> < % out.print("This is a JSP test file!n"); %> < /body> < /Html> 軟件開發網 最後,進行網頁浏覽。 http://www.mscto.com
打開浏覽器,訪問該.jsp文件: http://主機名(或IP地址)/test.JSp。若屏幕顯示如附圖所示的內容,表示運行正常,此時,可以正常運行JSP動態網頁文件了。
二、在Windows NT/2000平台上安裝
本文以Windows 2000平台為例。
(一)應用環境
操作系統采用Windows 2000,應用環境為Java 1.2.2(假定已安裝在c:jdk-1.2.2上)和Winzip。
(二)軟件包的下載與安裝 http://www.mscto.com
Windows NT2000上的安裝比較簡單,應用軟件不必重新編譯,只下載網站上已經編譯好的軟件包即可。
1.下載地址
在 http://httpd.apache.org/dist/binarIEs/Windows32/ 可下載編譯好的最新Apache軟件包apache_1.3.19-Windows32-no_src-r2.msi。
在http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.1/bin/Windows32/i386/ 可下載mod_jk.zip。
在http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.1/bin/可下載jakarta-tomcat-3.2.1.zip。
2.安裝
首先,雙擊"apache_1.3.19-Windows32-no_src-r2.msi",安裝apache 服務。
然後,將"mod_jk.zip"解壓縮到apache服務的"modules"子目錄下;最後,將"jakarta-tomcat-3.2.1.zip"解壓縮到C:目錄下。 軟件開發網
3.參數配置
http://www.mscto.com
(1)修改apache服務的配置文件httpd.conf 軟件開發網
注意: 本文只涉及與Tomcat有關的參數,其余的參數設置可參考apache的有關文檔資料。 軟件開發網
首先用鼠標點擊 "開始"*"程序 "*"apache httpd server"*"configure apache server"*"edit configuration"。
然後,在"Dynamic Shared Object (DSO) Support"部分嵌入如下內容。
LoadModule jk_module modules/mod_jk.dll http://www.mscto.com 最後,在文件尾部添加如下內容。
軟件開發網
JkWorkersFile c:jakarta-tomcat- 3.2.1confworkers.propertIEs JkLogFile c:jakarta-tomcat-3.2.1logsmod_jk.log JkLogLevel warn JkMount /*.JSP ajp13 JkMount /servlet/* ajp13 (2)配置Tomcat服務
對server.XML和workers.propertIEs文件的參數調整,讀者可參照Unix部分對應的段落。但讀者要注意,對於不同層次的目錄,Unix用"/"分隔,而Windows用""分隔。分別編輯startup.bat和shutdown.bat文件,在文件的第2行嵌入如下內容。
set TOMCAT_HOME=c:jakarta-tomcat-3.2.1 set Java_HOME=c:jdk1.2.2 set PATH=C:jdk1.2.2bin;.;%PATH%. 4.測試
參照Unix部分的對應段落進行測試。
本文只對apache/jk方式的配置和使用方法做了簡單介紹,在Tomcat的配置文件(如server.XML)中還有很多參數可根據實際情況進行調整,這裡不多介紹。有興趣的讀者可以參考配置文件中的提示信息或網站上的有關資料,進行進一步的調整與測試。