JSP 運行需要 Servlet 容器,Tomcat 是事實標準。根據前端 Web 服務器不同,衍生出三種主流部署架構。本文以 Windows + JDK 1.8 + Tomcat 9 為基線,詳細記錄配置步驟與避坑點。
架構:瀏覽器 → Tomcat (HTTP 8080) → JSP/Servlet
JAVA_HOME、Path。D:\Tomcat9,設置 CATALINA_HOME。conf/server.xml 若需變更端口(默認 8080)。bin/startup.bat 啟動,訪問 https://localhost:8080 驗證。test.jsp 放入 webapps/ROOT 或自建項目目錄,訪問驗證。優點:零額外配置,啟動快。缺點:靜態資源處理性能弱,無生產級安全/負載均衡能力。
架構:瀏覽器 → Apache (80/443) → AJP/HTTP → Tomcat (8009/8080)
D:\Apache24,確認 https://localhost 正常。mod_jk.so(或啟用內建 mod_proxy_ajp),放入 modules/。# httpd.conf 載入模塊
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMount /*.jsp worker1
JkMount /servlet/* worker1
# workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1
server.xml 取消註釋 <Connector protocol="AJP/1.3" port="8009" />。https://localhost/test.jsp(走 80 端口)驗證轉發成功。現代替代:推薦使用 mod_proxy_ajp 或 mod_proxy_http,無需編譯原生模塊,配置更簡單:
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
架構:瀏覽器 → IIS (80) → isapi_redirect.dll → Tomcat (8009 AJP)
tomcat-connectors Windows 二進制包,提取 isapi_redirect.dll、workers.properties.minimal、uriworkermap.properties、isapi_redirect.properties 放入 D:\Tomcat9\conf\。isapi_redirect.properties 指向上述文件路徑。isapi_redirect.dll。/jakarta 指向 D:\Tomcat9\bin(存放 dll)。*.jsp,可執行文件 isapi_redirect.dll。https://localhost/test.jsp 驗證。| 場景 | 推薦方案 | 核心理由 |
|---|---|---|
| 本地開發/學習 | Tomcat 獨立 | 最簡單,零運維 |
| Linux 生產、高併發、HTTPS、靜態資源分離 | Nginx + Tomcat (HTTP 反向代理) | Nginx 輕量高效,配置極簡,社區活躍 |
| Windows 生產、既有 IIS、.NET 共存 | IIS + Tomcat (isapi_redirect) | 利用現有 IIS 基礎設施 |
| 傳統 Java EE 企業應用、需 AJP 協議特性 | Apache httpd + Tomcat (mod_jk/mod_proxy_ajp) | AJP 二進制協議性能略優,成熟穩定 |
server.xml:maxThreads=200、acceptCount=100、connectionTimeout=20000、compression=on、compressibleMimeType=text/html,text/xml,text/plain,text/css,application/json,application/javascript。CATALINA_OPTS:-Xms2g -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200(按實際內存調整)。Cache-Control: max-age=31536000。掌握三種方案的配置邏輯,核心都是「前端服務器識別動態請求 → 轉發給 Tomcat → Tomcat 處理後返回」。新項目優先考慮 Nginx + Tomcat(HTTP 反代),簡單、高性能、跨平台。