apache|js|web 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 目錄下。
③安裝
(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 |
假定Java安裝在/usr/java1.2目錄下。
③安裝
$ su # /home/apache-1.3.19/bin/apxs -i -a -n jk mod_jk.so |
當螢幕顯示如下內容時,表示安裝成功。
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目錄下即可。
$ su # /usr/local/bin/gzip -dcjakarta-tomcat-3.2.1.tar.gz| (cd /home;tar xf -) |
3.參數配置
(1)配置Apache服務
用vi命令開啟Apache的設定檔httpd.conf。
# 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 |
最後,在"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。
# /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> |
最後,進行網頁瀏覽。
開啟瀏覽器,訪問該.jsp檔案: http://主機名稱(或IP地址)/test.jsp。若螢幕顯示如附圖所示的內容,表示運行正常,此時,可以正常運行JSP動態網頁檔案了。
二、在Windows NT/2000平台上安裝
本文以Windows 2000平台為例。
(一)應用環境
作業系統採用Windows 2000,應用環境為Java 1.2.2(假定已安裝在c:jdk-1.2.2上)和Winzip。
(二)軟體包的下載與安裝
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.參數配置
(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 |
最後,在檔案尾部添加如下內容。
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)中還有很多參數可根據實際情況進行調整,這裡不多介紹。有興趣的讀者可以參考設定檔中的提示資訊或網站上的有關資料,進行進一步的調整與測試。