Apache HTTP Server 作為前端 Web 伺服器,負責處理靜態資源(HTML、CSS、JS、圖片)與 SSL 終結,將動態請求(JSP、Servlet)透過 AJP 協議轉發至後端 Tomcat 或 JBoss 應用伺服器。此架構提升了安全性、效能與擴展性。
apache_2.2.3-win32-x86-no_ssl.msi)並安裝。netstat -ano 找出 PID,於工作管理員結束該進程。https://localhost 出現 "It works!" 表示安裝成功。下載 mod_jk-apache-2.2.3.so,複製至 Apache 安裝目錄下的 modules 資料夾。
# 定義真實 worker 使用 AJP13 協議
worker.list=admin
# 設定 admin worker 屬性
worker.admin.type=ajp13
worker.admin.host=127.0.0.1
worker.admin.port=8009
worker.admin.lbfactor=50
worker.admin.socket_keepalive=1
關鍵參數: host 為後端伺服器 IP,port 為 AJP 埠(Tomcat/JBoss 預設 8009)。
# 載入 mod_jk 模組
LoadModule jk_module modules/mod_jk-apache-2.2.3.so
# 指定 workers.properties 位置
JkWorkersFile conf/workers.properties
# 設定日誌
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# 將所有請求轉發給 admin worker
JkMount /* admin
JkMount /* admin 表示所有路徑請求皆轉發至 worker.list 定義的 admin worker。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443" />
確保後端 AJP 埠與 workers.properties 中 worker.admin.port 一致。
https://localhost,實際由後端 8009 埠處理。https://localhost/myapp),確認動態內容正常顯示。JkMount 路徑模式與後端 Context Path 是否匹配。server.xml AJP Connector 加入 URIEncoding="UTF-8"。Apache + mod_jk + Tomcat/JBoss 是經典的生產環境部署架構。掌握 workers.properties、httpd.conf 及後端 AJP Connector 的配置細節,能構建高可用、高效能的 Java Web 應用集群。