首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Tomcat 域名直訪 Web 項目完整配置指南(去除項目名與端口)

     編輯:程式設計綜合問答

需求場景

希望通過 www.example.com 直接訪問部署在非默認目錄的 Java Web 項目,而非 www.example.com/projectName 或 IP:8080/projectName。

核心配置步驟

1. 配置域名虛擬主機

編輯 $CATALINA_HOME/conf/server.xml,在 <Engine> 內添加 <Host>:

<Host name="www.example.com" appBase="/opt/mywebapps"
      unpackWARs="true" autoDeploy="true">
    <Alias>example.com</Alias>
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs" prefix="access_log" suffix=".txt"
           pattern="%h %l %u %t "%r" %s %b" />
</Host>
  • name:綁定域名
  • appBase:項目部署根目錄(非 webapps)
  • Alias:支持裸域名訪問

2. 部署為 ROOT 應用

在 appBase 目錄下創建 ROOT.war 或 ROOT/ 目錄,Tomcat 會自動將其映射為根路徑 /。

3. 隱藏端口 8080(生產環境必做)

  • 修改 server.xml 中 <Connector port="80" .../>(需 root 權限或 authbind)
  • 或使用 Nginx 反向代理至 8080,配置 proxy_pass https://127.0.0.1:8080;,同時實現 SSL 終結、靜態資源緩存等。

4. 禁用默認 ROOT 應用(可選)

若不想暴露 Tomcat 默認頁面,可刪除 webapps/ROOT 或在 server.xml 中將默認 <Host name="localhost"> 的 appBase 指向空目錄。

常見坑點排查

現象可能原因解決
域名訪問 404項目未部署為 ROOT重命名為 ROOT.war 或配置 Context path=""
靜態資源 404Nginx 未代理靜態路徑添加 location /static/ { alias /opt/mywebapps/ROOT/static/; }
Session 丟失多實例無 Session 共享配置 Redis Session Manager 或 Sticky Session

驗證清單

  1. curl -I www.example.com 返回 200
  2. 瀏覽器地址欄無項目名、無端口
  3. HTTPS 證書有效、HSTS 生效

遵循「獨立 Host + ROOT 部署 + 反向代理隱藏端口」三步走,輕松實現專業級域名直訪體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved