寫(xiě)在前面:
本機(jī)環(huán)境2008R2、tomcat8
網(wǎng)上搜了很多JSP的IIS部署,內(nèi)容大部分是相近的,這些文章最早出現(xiàn)在2012的樣子。大概的原理就是通過(guò)ISAPI方式對(duì)IIS進(jìn)行擴(kuò)展(這個(gè)擴(kuò)展是tomcat官方的,是官方comcat-connectors項(xiàng)目的IIS子集),讓IIS將JSP提交給tomcat進(jìn)行處理。官網(wǎng)有英文版本的詳細(xì)介紹http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html 另外csdn上down了一個(gè)文檔,指出了官網(wǎng)原文有不正確的地方。兩者是我參考的主要文獻(xiàn)。
PS:所謂指出官方文檔有不正確的地方就是64位的2008R2在使用ISAPI這個(gè)擴(kuò)展文件時(shí)是否使用64位,如果是64位則參考官方文檔,如果不是則參考網(wǎng)上的文檔。在具體部署這一步驟的時(shí)候我詳細(xì)記錄了。
其他參考文檔
http://blog.sina.com.cn/s/blog_68b0cad1010168hf.html
http://www.it165.net/os/html/201402/7156.html
一、部署jre
我下載的是1.8.0.45 x64,放到D盤(pán)Server目錄下
配置環(huán)境變量
Path: %JAVA_HOME%\bin;JAVA_HOME: D:\Server\Java\jre1.8.0_84 CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
二、部署tomcat
我下載的是apache-tomcat-8.0.23 8.0.23 用的是安裝版,安裝版本自動(dòng)匹配64
安裝到D:\Server目錄下。好了直接訪問(wèn)8080端口可以發(fā)現(xiàn)tomcat已經(jīng)OK了
三、配置Tomcat Connectors
1.下載Tomcat Connectors JK 1.2。說(shuō)的好聽(tīng),就是ISAPI擴(kuò)展文件,官網(wǎng)直接放出源碼。我下載的是“tomcat-connectors-1.2.40-windows-x86_64-iis.zip”。http://apache.fayea.com/tomcat/tomcat-connectors/jk/binaries/windows/
2.拷貝isapi_redirect.dll文件到Server\Tomcat8\bin\win32\x86_64文件夾下。
3.注冊(cè)isapi_redirect.dll,我直接弄reg文件并沒(méi)有完全導(dǎo)入成功,后面兩項(xiàng)我是手動(dòng)添加上去的。
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"="D:\Server\Tomcat8\logs\isapi.log""log_level"="debug""worker_file"="D:\Server\Tomcat8\conf\workers.properties""worker_mount_file"="D:\Server\Tomcat8\conf\uriworkermap.properties"
PS:
a.extension_uri:tomcat這個(gè)isapi工作原理,是通過(guò)iis的虛擬目錄調(diào)用tomcat的,在這里也就是site下面有個(gè)虛目錄jakarta,jakart指向了存放dll的目錄。通過(guò)調(diào)用這個(gè)虛目錄在調(diào)用tomcat。
b.worker_file與worker_mount_file者兩個(gè)文件是配置的是iis調(diào)用tomcat后,tomcat自己的工作方式及站點(diǎn)掛載方式。
c.在2008R2中如你想使用32位的isapi接口文件,也是可以的。只需要將isapi換成32位的dll文件。然后在IIS里面將允許jsp的site對(duì)應(yīng)的應(yīng)程序的高級(jí)設(shè)置里將 將啟用32位程序設(shè)置為true(官方的介紹就是講應(yīng)用程序模式改為WOW64模式),注冊(cè)表注冊(cè)項(xiàng)目路徑改為HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0 也就在wow64模式下注冊(cè)。
4.在tomcat安裝目錄下conf文件夾下建立兩個(gè)文件
文件1:workers.properties 其中worker1代表一個(gè)應(yīng)用標(biāo)簽
#這里的worker1是worker們的名字。worker相當(dāng)于一個(gè)tomcat運(yùn)行實(shí)例,可以允許多個(gè),就在此定義命名,命名規(guī)則為大小寫(xiě)字母數(shù)字與下劃線減號(hào)worker.list=worker1#指定運(yùn)行實(shí)例的工作類(lèi)型,分為ajp12(一個(gè)舊的協(xié)議,為了兼容而保留,不贊成使用的),ajp13(常用的),lb(負(fù)載均衡方式工作的)worker.worker1.type=ajp13worker.worker1.port=8009worker.worker1.host=localhostworker.worker1.lbfactor=1worker.worker1.connection_pool_timeout=600worker.worker1.socket_keepalive=1worker.worker1.socket_timeout=60 ##官方的例子 Define 3 workers, 2 real workers using ajp12, ajp13, the last one being a loadbalancing worker #worker.list=worker1, worker2, worker3 # Set properties for worker1 (ajp12) ##worker.worker1.type=ajp12 #worker.worker1.host=localhost #worker.worker1.port=8007 #worker.worker1.lbfactor=1 ## Set properties for worker2 (ajp13) #worker.worker2.type=ajp13 #worker.worker2.host=localhost #worker.worker2.port=8009 #worker.worker2.lbfactor=1 #worker.worker2.connection_pool_timeout=600 #worker.worker2.socket_keepalive=1 #worker.worker2.socket_timeout=60 ## Set properties for worker3 (lb) which use worker1 and worker2 #worker.worker3.balance_workers=worker1,worker2
文件2:uriworkermap.properties
/examples/* = worker1/TZCGS/*=worker1
PS:
a.worker_file一般指向一個(gè)tomcat的工作實(shí)例類(lèi)似iis的site.
b.worker_mount_file類(lèi)似iis里面的虛目錄配置文件。這里就是如果請(qǐng)求uri是hostlocal/examples和hostlocal/TZCGS 就用worker1實(shí)例來(lái)解析,其他還有iis來(lái)判斷如何執(zhí)行。其中的*是轉(zhuǎn)義字符代表匹配任意后綴,也可以配置相關(guān)規(guī)則具體可詳見(jiàn)官網(wǎng)說(shuō)明。如果直接說(shuō)/*=worker1那整個(gè)整個(gè)站點(diǎn)都有worker1實(shí)例來(lái)執(zhí)行。
c.如何讓IIS的一個(gè)site同時(shí)使用jsp,php,.net jsp的配置重點(diǎn)就是這里,你得告訴iis什么uri規(guī)則讓tomcat執(zhí)行。
四.配置IIS
1)在IIS的根節(jié)點(diǎn)即計(jì)算機(jī)節(jié)點(diǎn)中選擇“ISAPI和CGI限制”里面增加isapi_redirect.dll擴(kuò)展,參考如下
PS:這里的的描述可以自己設(shè)置,我建議可以為jakarta也可以為jsp
2)在iis增加一個(gè)site用來(lái)跑jsp程序,配置可以參考如下
3)在該站點(diǎn)的ISAPI篩選器中添加isapi篩選模塊。名稱(chēng)自定義可以參考如下。
4)建立映射jsp執(zhí)行的虛目錄,此虛目錄不做實(shí)際的虛目錄使用,只是跟注冊(cè)表中注冊(cè)的extension_uri配合指向tomcat。所以這個(gè)虛目錄的名稱(chēng)一定要對(duì)應(yīng)注冊(cè)表中extension_uri的值。在這里就是jakarta。然后其物理路徑一定要指向isapi_redirect.dll的目錄,在這里是D:\Server\Tomcat8\bin\win32\x86_64
5)配置虛目錄的“應(yīng)用程序映射”,編輯功能權(quán)限,將“執(zhí)行”打勾,配置參考如下
ps:在這一步,有網(wǎng)文說(shuō)需要添加一個(gè)*.jsp的映射指向到isapi的dll,在2008r2環(huán)境中本人實(shí)測(cè)根本不需要。
五.添加php程序,我這里是一個(gè)dz3.2的論壇。因?yàn)槲抑苯优渲昧藀hpmanager且使用FASTCGI模式,只要在IIS的根節(jié)點(diǎn)配置成功,添加PHP程序就像添加.NET程序一樣簡(jiǎn)單根本不需要配置任何東西。
PHP的IIS配置參考我之前的文章。
至此,根據(jù)我上文的配置,localhost/examples 就是訪問(wèn)tomcat 下webapps\examples中的jsp程序 ,訪問(wèn)localhost/bbs就是訪問(wèn)此虛目錄指向的php dz程序。
六、32位的isapi_redirect.dll的總結(jié)
32配置的注冊(cè)表文件
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0]"extension_uri"="/jakarta/isapi_redirect.dll""log_level"="debug""worker_file"="D:\\Server\\Tomcat8\\conf\\workers.properties""worker_mount_file"="D:\\Server\\Tomcat8\\conf\\uriworkermap.properties""log_file"="D:\\Server\\Tomcat8\\logs\\isapi.log"
32位在IIS中需要單獨(dú)配置的地方,正因?yàn)?2程序是基于WOW64模式,所以注冊(cè)表才會(huì)要在相應(yīng)的目錄下配置
關(guān)于Eclipse使用tomcat自身配置文件,運(yùn)行tomcat服務(wù)。
怎么有這個(gè)問(wèn)題的。主要是因?yàn)?,要在測(cè)試服務(wù)器上使用Eclipse開(kāi)發(fā)環(huán)境調(diào)試程序。Eclipse的server窗口里面的web服務(wù),默認(rèn)Eclipse自己建立一個(gè)獨(dú)立的tomcat服務(wù),這個(gè)服務(wù)在配置文件在%workspace_dir%\.metadata\.plugins\org.eclipse.wst.server.core\tempX目錄下。也就是上面的IIS+tomcat的方法,無(wú)法讓IIS調(diào)用tomcat安裝目錄下的配置的。解決途徑有兩種:
一種是把IIS的配置操作用于workspace目錄下。
一種是把Eclipse調(diào)試用的tomcat服務(wù),直接使用tomcat安裝目錄下的配置文件生產(chǎn)。
我選擇的是后者。Eclipse的server一旦建立,里面是無(wú)法修改的。解決方法在server窗口中刪除那個(gè)server直接重建,選擇use tomcat installation 即可。
聯(lián)系客服