核心組件認知
| 組件 | 角色 | 關鍵點 |
| J2SDK | Java 執行基礎 | JSP 本質是 Java,必須先裝 JDK |
| Apache HTTPD | 靜態資源、代理、SSL、重寫 | 處理靜態檔高效、成熟模組生態 |
| Tomcat | JSP/Servlet 容器 | 本身可做 HTTP 伺服器,但靜態效能弱於 Apache |
| mod_jk / mod_proxy_ajp | Apache ↔ Tomcat 連接器 | AJP 協議二進制、高效、支援負載均衡 |
| isapi_redirect (tc4ntiis) | IIS ↔ Tomcat 連接器 | Windows 原生 ISAPI 機制 |
方案一:Tomcat 獨立運行 (開發/測試/簡單部署)
- 安裝 JDK,設定
JAVA_HOME、PATH。
- 解壓 Tomcat,
bin/startup.sh (Linux) 或 bin/startup.bat (Windows)。
- 瀏覽
https://localhost:8080 驗證貓首頁。
- Web 應用放入
webapps/ 目錄 (WAR 或展開目錄)。
方案二:Apache + Tomcat (生產標準架構)
連接器選擇:mod_jk (AJP) vs mod_proxy_http
推薦 mod_jk (AJP 1.3):二進制協議、連接池、會話黏滯、錯誤檢測更完善。
關鍵配置步驟 (Linux 範例)
- 編譯/安裝
mod_jk.so (或包管理器 yum install mod_jk)。
httpd.conf 載入模組:LoadModule jk_module modules/mod_jk.so
- 建立
workers.properties:
worker.list=tomcat1
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
httpd.conf 掛載:
JkMount /myapp/* tomcat1
JkMount /myapp tomcat1
# 靜態資源由 Apache 直接服務
Alias /myapp/static /var/www/myapp/static
<Directory /var/www/myapp/static>
Require all granted
</Directory>
- Tomcat
server.xml 確保 AJP 連接器啟用:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- 重啟 Apache、Tomcat,驗證
https://domain/myapp/。
方案三:IIS + Tomcat (Windows 企業環境)
- 安裝 IIS (含 ISAPI 擴展、CGI)。
- 解壓
isapi_redirect.dll (來自 tc4ntiis.zip) 到 C:\Tomcat\bin\。
- 建立
isapi_redirect.properties:
extension_uri=/jakarta/isapi_redirect.dll
worker_file=C:\Tomcat\conf\workers.properties.minimal
log_file=C:\Tomcat\logs\isapi_redirect.log
log_level=info
- IIS 管理器 → 網站 → 「處理程式對應」 → 新增腳本映射:
請求路徑:*、可執行檔:C:\Tomcat\bin\isapi_redirect.dll、名稱:Jakarta。
- 配置
workers.properties.minimal 指向 Tomcat AJP 端口 (8009)。
- 重啟 IIS、Tomcat 驗證。
現代化部署建議 (2024+)
- 容器化:
Dockerfile 打包 Tomcat + 應用,K8s Deployment + Service + Ingress (Nginx/Traefik) 替代 Apache/IIS 反向代理。
- Spring Boot 嵌入式 Tomcat/Jetty/Undertow:JAR 直接運行,無需外部容器,
java -jar app.jar。
- GraalVM Native Image:AOT 編譯為原生可執行檔,啟動毫秒級、記憶體極低。
- Serverless:AWS Lambda / Azure Functions / Knative 運行 Java 函數,按需付費。
版本對照表 (歷史參考)
| 軟體 | 文中版本 (2003) | 現代 LTS 版本 (2024) |
| JDK | 1.4.1 | 21 (LTS) / 17 (LTS) |
| Tomcat | 4.1.21 | 10.1.x (Jakarta EE 10) / 9.0.x |
| Apache | 2.0.43 | 2.4.x |
| mod_jk | 1.2.x | 1.2.48+ |