在 Windows 2000 + IIS 5.0/6.0 環境下,將 Apache Tomcat 作為 Servlet/JSP 容器掛載到 IIS,透過 isapi_redirect.dll 橋接,是經典且免費的方案。本文記錄從環境變數、註冊表、虛擬目錄到 NT 服務安裝的完整步驟,供維護舊系統參考。
JAVA_HOME)set TOMCAT_HOME=D:\tomcat
set JAVA_HOME=D:\jdk1.3.1
set PATH=%PATH%;%TOMCAT_HOME%\bin;%JAVA_HOME%\bin
startup.bat
瀏覽 https://localhost:8080 應見 Tomcat 預設頁面。
鍵路徑:HKLM\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0
| 值名稱 | 型別 | 範例資料 |
|---|---|---|
| extension_uri | REG_SZ | /jakarta/isapi_redirect.dll |
| log_file | REG_SZ | D:\tomcat\isapi.log |
| log_level | REG_SZ | debug / info / error / emerg |
| worker_file | REG_SZ | D:\tomcat\conf\workers.properties |
| worker_mount_file | REG_SZ | D:\tomcat\conf\uriworkermap.properties |
Tomcat 3.2 附贈 jakarta.reg.auto,修改路徑後改名 .reg 雙擊匯入最快。
jakartaisapi_redirect.dll 所在資料夾(Tomcat 3.1 需從 3.2 的 bin\iis\nt4\i386 複製)Jakarta(自訂)D:\tomcat\bin\isapi_redirect.dlliisreset)篩選器圖示出現綠色向上箭頭即載入成功。
# 建立測試頁
echo ^<%% out.println("Hello JSP on IIS"); %%^> > %TOMCAT_HOME%\webapps\ROOT\test.jsp
瀏覽 https://localhost/test.jsp 應顯示輸出。若 404,於 IIS「主目錄」→「配置」→「應用程式對應」新增 .jsp → isapi_redirect.dll。
jk_nt_service.exe 至 %TOMCAT_HOME%\binwrapper.properties(關鍵只改前兩行):wrapper.tomcat_home=D:\tomcat
wrapper.java_home=D:\jdk1.3.1
# 其餘 classpath、stdout、stderr、shutdown_port=8007 等保持預設
jk_nt_service -I Jakarta D:\tomcat\wrapper.properties| 現象 | 可能原因 | 對策 |
|---|---|---|
| ISAPI 篩選器紅箭頭 | DLL 路徑錯誤/架構不符(x86/x64) | 確認 DLL 位元數與 IIS 應用程式集區一致 |
| JSP 回傳 404/500 | uriworkermap.properties 未對應 *.jsp | 檢查 /*.jsp=worker1 映射存在 |
| 中文亂碼 | Tomcat server.xml 未設 URIEncoding | <Connector port="8009" URIEncoding="UTF-8" /> |
| 重開機後失效 | Tomcat 服務未設自動/依賴順序錯 | 服務屬性 → 依賴關係加入 IISADMIN |
Tomcat 3.x 已停止維護超過十年,存在已知安全漏洞(CVE-2007-5461 等)。新專案請直接採用 Tomcat 9/10 + AJP/HTTP 連接器或 Spring Boot 內嵌容器,僅於必須維護舊系統時參考本文。