在 Windows 2000 環境下,將 Apache HTTP Server 與 Tomcat Servlet 容器整合,是早期 Java Web 開發部署的經典架構。本文詳細記錄 Apache 2.0.43 與 Tomcat 4.1.12 透過 JK2 連接器進行整合的完整步驟,供維護舊系統或研究演進歷史的開發者參考。
安裝順序建議依序為:J2SDK 1.4.1(或其他相容版本)、Apache 2.0.43、Tomcat 4.1.12。安裝完成後,需設定以下環境變數:
%JAVA_HOME%\bin 以便直接執行 java、javac 指令從 Jakarta 官方建置站點下載 mod_jk2-2.0.43.dll,並複製到 Apache 安裝目錄下的 modules 子目錄。
下載位址:https://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.1/bin/win32/mod_jk2-2.0.43.dll
在 httpd.conf 末尾加入以下設定,載入模組並定義虛擬主機:
LoadModule jk2_module modules/mod_jk2-2.0.43.dll
<VirtualHost *>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "D:/jakarta-tomcat-4.1.12/webapps"
ServerName dummy-host.example.com
DirectoryIndex index.htm index.html index.jsp
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
重點說明:
DocumentRoot 必須指向 Tomcat 的 webapps 目錄DirectoryIndex 加入 index.jsp 使 Apache 能自動解析 JSP 檔案在 Apache conf 目錄下建立 workers2.properties,定義通訊通道與 URI 對應:
# 定義通訊通道(使用 AJP13 協定)
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
tomcatId=localhost:8009
# 將所有 Webapp 對應到 Web Server 的 URI 空間
[uri:/*]
info=Map the whole webapp
若僅需公開特定子路徑(如 /examples),可修改 URI 映射:
[uri:/examples/*]
info=Map the examples webapp
Tomcat 4.1.12 預設已啟用 8009 端口的 AJP13 監聽器(在 server.xml 中定義),若未更動預設設定,無需額外修改。
https://localhost/DocumentRoot 路徑是否正確、大小寫是否一致此架構雖屬經典,但現代生產環境建議升級至支援更多功能、效能更佳的新版本組合(如 Apache 2.4 + Tomcat 9/10 + mod_jk 1.2.x)。