2016年2月4日 星期四

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

3 則留言:

  1. 感謝您的分享
    已成功架設

    回覆刪除
    回覆
    1. 不過一開始以為jakarta是路徑名XD,一直發生404情況QQ

      刪除
    2. 很高興能幫到你 :)

      刪除