22.4 Tomcat與IIS伺服器整合
IIS(Internet Information Service)伺服器是微軟開發的功能強大的Web伺服器,IIS為建立和開發電子商務的提供了安全的Web平台。把Tomcat與IIS整合,可以擴充IIS的功能,使它支援Java Web應用。
22.4.1 準備相關檔案
在開始本節的操作之前,假定在機器上安裝了IIS伺服器,應該準備好以下3個檔案。
1.JK外掛程式
在本書配套光碟片的lib目錄下提供了用於IIS的JK外掛程式:isapi_redirect.dll,此外,也可以到以下地址下載最新的JK外掛程式:http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk,
22.4.4 把JK外掛程式作為篩選器加入到IIS
可以把JK外掛程式isapi_redirect.dll拷貝到/bin目錄下。
2.workers.properties檔案
在/conf目錄下建立如下的workers.properties檔案。在本書配套光碟片的sourcecode/chapter22/iis目錄下也提供了該檔案:
workers.tomcat_home=C:\jakarta-tomcat #讓mod_jk模組知道Tomcatworkers.java_home=C:\j2sdk1.4.2 #讓mod_jk模組知道j2sdkps=\ #指定檔案路徑分割符worker.list=worker1 worker.worker1.port=8009 #工作連接埠,若沒佔用則不用修改worker.worker1.host=localhost#Tomcat伺服器的地址worker.worker1.type=ajp13 #類型worker.worker1.lbfactor=1#Server Load Balancer因數
3.uriworkermap.properties檔案
在/conf目錄下建立如下的uriworkermap.properties檔案,它為JK外掛程式指定URL映射。在本書配套光碟片的sourcecode/chapter22/iis目錄下也提供了該檔案:
/*.jsp=worker1/helloapp/*=worker1
儘管把以上3個檔案都放在Tomcat目錄下,其實Tomcat伺服器並不會訪問這些檔案。以上給出的是按照慣例的一種配置,事實上,也可以把這些檔案放在檔案系統的其他地方。
22.4.2 編輯註冊表
在配置Apache和Tomcat整合時,JK外掛程式的屬性是在Apache的設定檔httpd.conf中設定的。配置IIS和Tomcat整合時,應該在作業系統的註冊表中設定JK外掛程式的屬性,以下是操作步驟。
(1)在Windows NT/2000中通過regedit命令編輯註冊表,建立一個新的鍵:HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector \1.0,22-4所示。
圖22-4 在註冊表中建立Jakarta Isapi Redirector\1.0鍵
(2)在Jakarta Isapi Redirector\1.0鍵下面建立新的字串,參見表22-5,建立好之後的註冊表22-5所示。
表22-5 在Jakarta Isapi Redirector\1.0鍵下面建立的字串
字 符 串
字 符 串 值
描 述
extension_uri
/jakarta/isapi_redirect.dll
指定訪問isapi_redirect.dll檔案的uri, 在IIS中將建立名為jakarta的虛擬目錄, 在該目錄下包含isapi_redirect.dll檔案, 參見22.4.3節
log_file
C:\jakarta-tomcat\logs\isapi.log
指定JK外掛程式使用的記錄檔, 在實際配置中,可以通過查看這個記錄檔, 來跟蹤JK外掛程式的運行過程, 這對排錯很有用
log_level
debug
指定JK外掛程式的記錄層級, 可選值包括debug、info和error等
worker_file
C:\ jakarta-tomcat\conf \workers.properties
指定JK外掛程式的工作檔案
worker_mount_file
C:\jakarta-tomcat\conf \uriworkermap.properties
指定JK外掛程式的URL對應檔
圖22-5 在Jakarta Isapi Redirector\1.0鍵下面建立新的字串
在本書配套光碟片的sourcecode/chapter22/iis目錄下提供了註冊表編輯檔案jk.reg,如果不想按照以上方式手工修改註冊表,也可以直接運行jk.reg檔案(選中這個檔案再雙擊滑鼠即可),它會把以上配置內容自動添加到註冊表中。jk.reg的內容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0] "extension_uri"="/jakarta/isapi_redirect.dll" "log_file"="C:\\jakarta-tomcat\\logs\\isapi.log" "log_level"="debug" "worker_file"="C:\\jakarta-tomcat\\conf\\workers.properties" "worker_mount_file"="C:\\jakarta-tomcat\\conf\\uriworkermap.properties"
在運行jk.reg檔案之前,應該把檔案中的"C:\\jakarta-tomcat"目錄替換為Tomcat安裝目錄。
22.4.3 在IIS中加入"jakarta"虛擬目錄
註冊表修改以後,應該在IIS中加入名為"jakarta"的虛擬目錄,它是JK外掛程式所在的目錄,以下是操作步驟。
(1)選擇作業系統的【控制台】→【管理工具】→【Internet服務管理員】選項,開啟Internet資訊服務管理器,22-6所示。
圖22-6 Internet資訊服務管理器視窗
(2)選中【預設Web網站】,單擊滑鼠右鍵,在下拉式功能表中選擇【建立】→【虛擬目錄】選項,22-7所示。建立一個虛擬目錄,名為"jakarta",對應的實際檔案資源路徑應該是isapi_redirect.dll檔案所在的目錄/bin。
圖22-7 建立虛擬目錄
(3)修改剛剛建立的jakarta虛擬目錄的屬性,將其執行許可許可權設為"指令碼和可執行程式",22-8所示。這步操作很重要,它保證在註冊表中設定的extension_uri對應的/jakarta/isapi_redirect.dll可以被執行。如果漏掉這步操作,會導致無法訪問Tomcat中的Servlet/JSP組件。
圖22-8 修改jakarta虛擬目錄的執行許可許可權
22.4.4 把JK外掛程式作為篩選器加入到IIS
在IIS中加入名為"jakarta"的虛擬目錄後,還應該把JK外掛程式作為ISAPI篩選器加入到IIS中,以下是操作步驟。
(1)在Internet資訊服務主視窗的分類樹中選擇IIS主機節點,單擊滑鼠右鍵,在下拉式功能表中選擇【屬性】選項,22-9所示。在出現的視窗中單擊【編輯】按鈕,開啟IIS主機的屬性視窗,22-10所示。
圖22-9 配置IIS主機的屬性
圖22-10 IIS主機的屬性視窗
(2)在主屬性的WWW服務地區單擊【編輯】按鈕,開啟WWW服務主屬性視窗,增加新的ISAPI篩選器,篩選器名稱為"jakarta",可執行檔為/bin /isapi_redirect.dll,22-11所示。
圖22-11 增加新的ISAPI篩選器
(3)重新啟動IIS伺服器,如果配置正常,在WWW服務主屬性的ISAPI篩選器子視窗中,新加的jakarta篩選器的狀態應該變為綠色向上的箭頭,22-12所示。
圖22-12 jakarta篩選器被裝載
22.4.5 測試組態
重啟Tomcat伺服器和IIS伺服器,通過瀏覽器訪問http://localhost/index.jsp。如果出現Tomcat的預設首頁,說明配置已經成功。此外,如果在Tomcat伺服器上已經發布了helloapp應用,可以訪問http://localhost/helloapp/index.htm;如果正常返回helloapp應用的index.htm網頁,說明配置已經成功;如果配置有誤,可以查看JK外掛程式產生的日誌資訊,它有助於尋找錯誤原因。在註冊表中設定該記錄檔的存放位置為/logs/isapi.log。
22.5 小 結
本章介紹了通過JK外掛程式來實現Tomcat與Apache以及IIS伺服器整合的步驟。Tomcat提供了專門的JK外掛程式來負責Tomcat和HTTP伺服器的通訊。JK外掛程式安置在對方HTTP伺服器上。當HTTP伺服器接收到客戶請求時,它會通過JK外掛程式來過濾URL,JK外掛程式根據預先配置好的URL映射資訊,來決定是否要把客戶請求轉寄給Tomcat伺服器處理。Tomcat與Apache以及IIS伺服器整合的異同之處參見表22-6。
表22-6 Tomcat與Apache以及IIS伺服器整合的異同之處
Tomcat與Apache整合
Tomcat與IIS整合
JK外掛程式的工作檔案
workers.properties檔案
workers.properties檔案
設定JK外掛程式屬性
在Apache的設定檔httpd.conf中設定
在註冊表中設定
設定URL映射資訊
在Apache的設定檔httpd.conf中設定
在uriworkermap.properties檔案中設定
載入JK外掛程式
把JK外掛程式拷貝到/lib目錄下, 在Apache的設定檔httpd.conf中設定 LoadModule屬性
把JK外掛程式所在的目錄作為IIS的虛擬目錄, 把JK外掛程式作為ISAPI篩選器加入到IIS中
(T117)
本文節選自由飛思圖書授權《Tomcat與Java Web開發技術詳解》
http://tech.ccidnet.com/art/1112/20050608/264665_2...