在企業級 Java 架構中,理清 IIS、Apache、Tomcat、WebLogic、WebSphere 的定位與協作關係,是設計高可用、可擴展系統的前提。本文從協議支援、功能邊界、典型部署拓撲三個維度深度剖析。
| 類型 | 核心職責 | 支援協議 | 典型代表 |
|---|---|---|---|
| HTTP 伺服器 / Web 伺服器 | 解析 HTTP、服務靜態資源 (HTML/CSS/JS/圖片) | HTTP/HTTPS | Apache HTTPD, Nginx, IIS (純 Web 模式) |
| 應用伺服器 | 執行商業邏輯、管理事務/安全/資源池、暴露遠程 API | HTTP, RMI, IIOP, JMS 等多協議 | WebLogic, WebSphere, JBoss, GlassFish |
| Servlet 容器 (輕量級應用伺服器) | 管理 Servlet/JSP 生命週期、處理動態請求 | HTTP | Tomcat, Jetty, Undertow |
Apache 負責靜態資源與 SSL 卸載,動態請求 (Servlet/JSP) 透過 mod_jk 或 mod_proxy_ajp 轉發給 Tomcat。可配置多 Tomcat 實現負載均衡。
WebLogic/WebSphere 後端跑商業邏輯,前端掛 Apache/Nginx 做靜態分流、SSL 終結、WAF 防護,達成職責分離與性能最優。
多數商業應用伺服器內建 Tomcat 作為 Servlet 容器,開發者僅需一行致謝即可合規嵌入。
理解邊界,才能正確分工;正確分工,系統才能演進。