學習JSP第一步是搭建標準運行環境。以Tomcat為核心JSP引擎,根據前端Web服務器選擇不同,形成三種主流部署拓撲。本文以實用為原則,逐步拆解配置要點(基於JDK 1.4.1、Tomcat 4.1.21、Apache 2.0.43、IIS 5.0時代版本,現代版本邏輯同理)。
| 組件 | 角色 | 說明 |
|---|---|---|
| J2SDK | Java運行基礎 | JSP本質是Servlet,需JDK編譯運行 |
| Tomcat | JSP/Servlet容器 | 核心引擎,解析JSP編譯為Servlet類並執行;自帶HTTP連接器可獨立對外 |
| Apache HTTPD | 靜態資源/反向代理 | 處理靜態文件(HTML/CSS/JS/圖片)性能優於Tomcat;作為反向代理轉發動態請求給Tomcat |
| IIS | Windows原生Web服務 | 企業內網常見,整合Windows認證、憑證管理優勢 |
| mod_jk / isapi_redirect | 連接器模塊 | Apache/IIS與Tomcat通信橋梁,實現AJP協議轉發 |
JAVA_HOME、PATH。startup.bat,訪問https://localhost:8080驗證。webapps目錄或配置server.xml<Context>。優點:零配置、啟動快、調試直觀。缺點:靜態資源吞吐弱、無生產級安全/負載均衡能力。
httpd.conf載入mod_so、mod_proxy、mod_proxy_ajp(現代版本推薦mod_proxy_ajp替代老牌mod_jk)。server.xml啟用AJP連接器:<Connector port="8009" protocol="AJP/1.3" />。httpd.conf配置代理:
ProxyPass /app ajp://localhost:8009/app
ProxyPassReverse /app ajp://localhost:8009/app
# 靜態資源直服
ProxyPass /app/static/ !
Alias /app/static/ "D:/tomcat/webapps/app/static/"
https://localhost/app/xxx.jsp走Tomcat,https://localhost/app/static/logo.png走Apache。優點:動靜分離、Apache成熟穩健、支持SSL終結、負載均衡多Tomcat節點。缺點:雙進程維護、配置相對複雜。
isapi_redirect.dll(原tc4ntiis.zip),放置如C:\tomcat\connectors\。isapi_redirect.properties、workers.properties.minimal、uriworkermap.properties配置Worker與URL映射。isapi_redirect.dll,添加虛擬目錄映射/jakarta到DLL目錄。優點:融入Windows認證體系、單一進程管理、原生SSL憑證存儲。缺點:跨平台性差、AJP連接器版本敏感、社區活躍度低於Apache方案。
nginx:alpine + tomcat:10-jdk17,環境一致性無憂。三種方案本質相同:前端服務器處理靜態/SSL/負載,動態請求AJP/HTTP代理給Tomcat。理解這一核心,版本遷移不再迷茫。