Tomcat 核心組件層級:Server → Service → Connector + Engine → Host → Context
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
</Host>
</Engine>
</Service>
D:\Tomcat5.0\conf\Catalina\localhost\ ← 原有 Context 配置
D:\Tomcat5.0\conf\Fantasysoft\localhost\ ← 新 Service Context 配置
將需部署在新端口的應用 Context XML 複製/移動至 Fantasysoft\localhost\。
<Service name="Fantasysoft">
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8453"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"/>
<Connector port="8019" protocol="AJP/1.3" redirectPort="8453"/>
<Engine name="Fantasysoft" defaultHost="localhost">
<Host name="localhost" appBase="webapps">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="fantasysoft_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
</Host>
</Engine>
</Service>
https://localhost:8080/ → 原有應用https://localhost:8090/ → 新 Service 應用 (讀取 conf/Fantasysoft/localhost/ 下 Context)
<Service name="API-Service">
<Connector port="8081" ... />
<Engine name="API-Service" defaultHost="api.example.com">
<Host name="api.example.com" appBase="webapps-api">
<Alias>api.example.org</Alias>
<Context path="" docBase="ROOT" />
</Host>
<Host name="admin.example.com" appBase="webapps-admin">
<Context path="/admin" docBase="admin-war" />
</Host>
</Engine>
</Service>
| 屬性 | Catalina (預設) | Fantasysoft (新增) | 說明 |
|---|---|---|---|
| Service name | Catalina | Fantasysoft | 全域唯一,對應 conf/ 子目錄名 |
| HTTP Connector port | 8080 | 8090 | 對外服務端口,防火牆需放行 |
| AJP Connector port | 8009 | 8019 | 反向代理 (Nginx/Apache) 連接端口 |
| redirectPort | 8443 | 8453 | SSL 重導向端口,避免衝突 |
| Engine name | Catalina | Fantasysoft | 需與 Service name 一致 |
| Host appBase | webapps | webapps (可改) | 應用 WAR/目錄基礎路徑 |
| Context 配置目錄 | conf/Catalina/localhost/ | conf/Fantasysoft/localhost/ | 自動掃描部署描述符 |
netstat -an | findstr 8090 檢查,修改 port 或關閉佔用進程conf//localhost/ 目錄server.xml 端口、catalina.sh/bat 基礎目錄,systemd 管理多服務