22.4 Tomcat與IIS服務(wù)器集成
IIS(Internet Information Service)服務(wù)器是微軟開發(fā)的功能強大的Web服務(wù)器,IIS為創(chuàng)建和開發(fā)電子商務(wù)的提供了安全的Web平臺。把Tomcat與IIS集成,可以擴展IIS的功能,使它支持Java Web應(yīng)用。
22.4.1 準(zhǔn)備相關(guān)文件
在開始本節(jié)的操作之前,假定在機器上安裝了IIS服務(wù)器,應(yīng)該準(zhǔn)備好以下3個文件。
1.JK插件
在本書配套光盤的lib目錄下提供了用于IIS的JK插件:isapi_redirect.dll,此外,也可以到以下地址下載最新的JK插件:http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk,可以把JK插件isapi_redirect.dll拷貝到/bin目錄下。
2.workers.properties文件
在/conf目錄下創(chuàng)建如下的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服務(wù)器的地址worker.worker1.type=ajp13 #類型worker.worker1.lbfactor=1#負(fù)載平衡因數(shù)
3.uriworkermap.properties文件
在/conf目錄下創(chuàng)建如下的uriworkermap.properties文件,它為JK插件指定URL映射。在本書配套光盤的sourcecode/chapter22/iis目錄下也提供了該文件:
/*.jsp=worker1/helloapp/*=worker1
盡管把以上3個文件都放在Tomcat目錄下,其實Tomcat服務(wù)器并不會訪問這些文件。以上給出的是按照慣例的一種配置,事實上,也可以把這些文件放在文件系統(tǒng)的其他地方。
22.4.2 編輯注冊表
在配置Apache和Tomcat集成時,JK插件的屬性是在Apache的配置文件httpd.conf中設(shè)置的。配置IIS和Tomcat集成時,應(yīng)該在操作系統(tǒng)的注冊表中設(shè)置JK插件的屬性,以下是操作步驟。
(1)在Windows NT/2000中通過regedit命令編輯注冊表,創(chuàng)建一個新的鍵:HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector \1.0,如圖22-4所示。
圖22-4 在注冊表中創(chuàng)建Jakarta Isapi Redirector\1.0鍵
(2)在Jakarta Isapi Redirector\1.0鍵下面創(chuàng)建新的字符串,參見表22-5,創(chuàng)建好之后的注冊表如圖22-5所示。
表22-5 在Jakarta Isapi Redirector\1.0鍵下面創(chuàng)建的字符串
字 符 串字 符 串 值描 述
extension_uri/jakarta/isapi_redirect.dll指定訪問isapi_redirect.dll文件的uri, 在IIS中將創(chuàng)建名為jakarta的虛擬目錄, 在該目錄下包含isapi_redirect.dll文件, 參見22.4.3節(jié)
log_fileC:\jakarta-tomcat\logs\isapi.log指定JK插件使用的日志文件, 在實際配置中,可以通過查看這個日志文件, 來跟蹤JK插件的運行過程, 這對排錯很有用
log_leveldebug指定JK插件的日志級別, 可選值包括debug、info和error等
worker_fileC:\ jakarta-tomcat\conf \workers.properties指定JK插件的工作文件
worker_mount_fileC:\jakarta-tomcat\conf \uriworkermap.properties指定JK插件的URL映射文件
圖22-5 在Jakarta Isapi Redirector\1.0鍵下面創(chuàng)建新的字符串
在本書配套光盤的sourcecode/chapter22/iis目錄下提供了注冊表編輯文件jk.reg,如果不想按照以上方式手工修改注冊表,也可以直接運行jk.reg文件(選中這個文件再雙擊鼠標(biāo)即可),它會把以上配置內(nèi)容自動添加到注冊表中。jk.reg的內(nèi)容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWAREApache Software FoundationJakarta 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文件之前,應(yīng)該把文件中的"C:\\jakarta-tomcat"目錄替換為Tomcat安裝目錄。
22.4.3 在IIS中加入"jakarta"虛擬目錄
注冊表修改以后,應(yīng)該在IIS中加入名為"jakarta"的虛擬目錄,它是JK插件所在的目錄,以下是操作步驟。
(1)選擇操作系統(tǒng)的【控制面板】→【管理工具】→【Internet服務(wù)管理器】選項,打開Internet信息服務(wù)管理器,如圖22-6所示。
圖22-6 Internet信息服務(wù)管理器窗口
(2)選中【默認(rèn)Web站點】,單擊鼠標(biāo)右鍵,在下拉菜單中選擇【新建】→【虛擬目錄】選項,如圖22-7所示。創(chuàng)建一個虛擬目錄,名為"jakarta",對應(yīng)的實際文件資源路徑應(yīng)該是isapi_redirect.dll文件所在的目錄/bin。
圖22-7 創(chuàng)建虛擬目錄
(3)修改剛剛創(chuàng)建的jakarta虛擬目錄的屬性,將其執(zhí)行許可權(quán)限設(shè)為"腳本和可執(zhí)行程序",如圖22-8所示。這步操作很重要,它保證在注冊表中設(shè)置的extension_uri對應(yīng)的/jakarta/isapi_redirect.dll可以被執(zhí)行。如果漏掉這步操作,會導(dǎo)致無法訪問Tomcat中的Servlet/JSP組件。
圖22-8 修改jakarta虛擬目錄的執(zhí)行許可權(quán)限