一切福田,不離方寸,從心而覓,感無不通。

IIS7 與 Tomcat整合(use isapi_redirect.dll)

因為想要在一台電腦上同時執行 ASPX 與 JSP
而只能使用80 PORT,
所以只能透過IIS 來轉發 request到tomcat
使用的Tomcat版本是8.0

方法如下:
1.下載 The Apache Tomcat Connectors  我下載的版本是1.2.40
可以得到 isapi_redirect.dll , 我是放在 c:\tomcat8\bin\

2.設定connector
根據官網的文件 isapi_redirect 的設定方式有兩種
(1) registry setting
在HKLM\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0
新增最少以下資訊
extension_uri:/jakarta/isapi_redirect.dll  (固定值)
log_file: c:/tomcat8/logs/isapi_redirect.log
log_level: info
worker_file: c:/tomcat8/conf/workers.properties (workers設定檔的位置)
worker_mount_file: C:/tomcat8/conf/uriworkermap.properties (uri對照的mapping)

(2)isapi_redirect.properties
設定同上, 不過我試的結果是沒有用, 所以用第一種方法
#固定值
extension_uri=/jakarta/isapi_redirect.dll
#log檔放的位置可以依日期來當檔名可以參考官網設定
log_file=c:/tomcat8/logs/isapi_redirect.log
#log的記錄內容有 debug, info, warn, error, trace
log_level=info
#worker設定檔的位置
worker_file=c:/tomcat8/conf/workers.properties
#worker uri mapping對照檔的位置
worker_mount_file=C:/tomcat8/conf/uriworkermap.properties

3.建立workers.properties文件
官網worker參數設定
#隨便設定, 但是要跟等等設定的 uriworkermap.properties一致就好
worker.list=jspWorker
#可以是ajp13, ajp14, jni, lb 或是 status
#不過以下的設定需要跟server.xml的connector的設定一致
worker.geloinWorker.type=ajp13
#tomcat server所在的電腦
worker.geloinWorker.host=localhost

worker.geloinWorker.port=8009

4.設定uriworkermap.properties
詳細設定要參考官網的uri設定
這邊要跟workers.properties的 worker.list設定一致
/*.jsp=jspWorker
/test/*=jspWorker

IIS設定
1.先建立一個跟isapi_redirect.properties的 extension_uri一致的虛擬目錄

設定到isapi_redirect.dll所在位置

2.設定處理常式對應 -> 編輯功能權限 設為執行

3.為網站新增ISAPI篩選器

4.幫SERVER設定ISAPI及CGI限制新增 JAKARTA

5.記得將W3SVC重啟

參考資料:
1. https://tomcat.apache.org/connectors-doc/
2. http://www.cnblogs.com/meizhouxiang/p/3977474.html

from:https://trei1205.blogspot.com/2016/02/iis7-tomcatuse-isapiredirectdll.html