固定對外接口 https://host:port/A/ 需訪問實際部署的項目 B(Context Path /B)。
| 方案 | 操作 | 優點 | 缺點 |
|---|---|---|---|
| 修改 Context Path | 將項目 B 的 context.xml 或 server.xml 設置 path="/A" | 最直接,無額外層 | 項目名變更,可能影響內部絕對路徑 |
| Tomcat 重寫閥 | server.xml 添加 <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> + rewrite.config | 不動原項目,靈活 | 配置複雜,性能微損 |
| Nginx 反向代理 | Nginx location /A/ { proxy_pass https://tomcat:8080/B/; } | 生產環境標準做法,支持負載均衡、SSL | 引入額外組件 |
| 項目 A 只做轉發 | 項目 A Controller 全部 redirect:/B/... 或 forward | 代碼可控 | 開發維護成本高 |
直接修改項目 B 的 Context Path 為 /A:
<Context path="/A" docBase="B" reloadable="true" />
或 server.xml Host 下:
<Context path="/A" docBase="B" />
重啟 Tomcat 後,/A 直接訪問原 B 項目內容。