將 https://10.10.153.86:8080/projectName 簡化為 https://10.10.153.86/
編輯 $CATALINA_HOME/conf/server.xml
<!-- 修改前 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="40000"
redirectPort="8443"
enableLookups="false"
minProcessors="10" maxProcessors="1024" acceptCount="1024" />
<!-- 修改後 -->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="40000"
redirectPort="8443"
enableLookups="false"
minProcessors="10" maxProcessors="1024" acceptCount="1024" />
注意:Linux 端口 < 1024 需 root 權限,或用 `authbind`/`setcap` 提權
在同檔案 `
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- 新增:空路徑映射到專案 -->
<Context path="" docBase="projectName" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" ... />
</Host>
關鍵屬性:
path="":根路徑 (空字串)docBase="projectName":專案目錄名 (webapps 下) 或 WAR 檔名reloadable="true":開發模式熱重載# 清除編譯緩存
rm -rf $CATALINA_HOME/work/Catalina/localhost/*
# 重啟 Tomcat
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
curl https://10.10.153.86/
# 應直接返回專案首頁
| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| server.xml Context path="" | 簡單、Tomcat 原生 | 單實例僅支援一個根應用 | 單應用部署 |
| Nginx 反向代理 + rewrite | 多應用、靈活、靜態資源分離 | 需額外維護 Nginx | 生產環境、多應用 |
| 專案打包為 ROOT.war | 零配置、Tomcat 預設行為 | 需重新打包、版本管理麻煩 | 簡單部署 |
| Docker 映射端口 80:8080 | 容器化、隔離、可移植 | 需 Docker 環境 | 雲原生部署 |
server {
listen 80;
server_name 10.10.153.86;
location / {
proxy_pass https://127.0.0.1:8080/projectName/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 靜態資源直接由 Nginx 服務
location /static/ {
alias /opt/tomcat/webapps/projectName/static/;
expires 30d;
}
}
最簡單方式:修改 server.xml port=80 + Context path=""。生產環境建議:**Nginx 監聽 80/443 反向代理 Tomcat 8080**,實現靜態資源分離、多應用路由、SSL 終結、負載均衡等企業級功能。