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

Apache Tomcat 安裝配置全攻略:端口、虛擬目錄、虛擬主機與生產優化

     編輯:Java 綜合教學

Apache Tomcat 安裝配置全攻略

一、獲取與安裝

  • 官網:tomcat.apache.org
  • 兩種包:安裝版(含 Windows 服務註冊、GUI 配置工具)vs 解壓版(綠色、便攜、推薦開發用)
  • 解壓即用,目錄結構見下文

二、運行環境搭建

  1. 安裝 JDK(建議 JDK 8/11/17 LTS)
  2. 配置環境變量 JAVA_HOME 指向 JDK 目錄(非 JRE)
  3. JAVA_HOME 環境變量配置
  4. 雙擊 bin/startup.bat (Win) 或 bin/startup.sh (Linux/Mac) 啟動
  5. 瀏覽器訪問 https://localhost:8080 見貓頁面即成功

三、目錄結構解析

目錄用途
bin啟動/關閉腳本、Tomcat 原生庫
conf全局配置:server.xml, web.xml, context.xml, tomcat-users.xml
lib容器共享 JAR(Servlet API, JDBC 驅動等)
webapps默認應用部署目錄(ROOT, docs, examples, manager, host-manager)
workJSP 編譯生成的 Servlet .class 文件緩存
logs運行日志(catalina.out, localhost_access_log...)
temp臨時文件

四、默認行為與請求解析

完整請求:https://host:port/context/path

  • 協議:HTTP/HTTPS
  • 主機:域名或 IP
  • 端口:HTTP 默認 80,Tomcat 默認 8080
  • 上下文路徑:應用名(ROOT 為空)
  • 資源路徑:Servlet 映射或靜態文件

訪問 https://localhost:8080/ 實際命中 webapps/ROOT/index.jsp(由 conf/web.xml welcome-file-list 決定)。

五、核心配置修改

1. 修改監聽端口 (8080 → 80)

編輯 conf/server.xml,找到 <Connector>:

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

server.xml Connector 配置

⚠️ Linux 1024 以下端口需 root 權限或 authbind/setcap 授權。

2. 修改默認應用 (ROOT → 自定義)

方式一:替換 webapps/ROOT 目錄內容
方式二:server.xml <Host> 下配置 <Context path="" docBase="/absolute/path/to/myapp" />

<Host name="localhost" appBase="webapps" ...>
    <Context path="" docBase="d:/myweb" debug="0" reloadable="true" />
</Host>

Context 配置

效果:https://localhost:8080/ 直接訪問 d:/myweb。

自定義首頁效果

3. 修改歡迎頁面順序

編輯 conf/web.xml(全局)或應用 WEB-INF/web.xml(局部):

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
</welcome-file-list>

welcome-file-list 配置

六、虛擬主機配置(多域名共用一 Tomcat)

在 server.xml <Engine> 下添加多個 <Host>:

<Host name="www.example.com" appBase="/data/www/example" 
      unpackWARs="true" autoDeploy="true">
    <Alias>example.com</Alias> <!-- 域名別名 -->
    <Context path="" docBase="/data/www/example" />
</Host>

<Host name="api.example.com" appBase="/data/www/api">
    <Context path="" docBase="/data/www/api" />
</Host>

虛擬主機配置示意

  • name:主域名
  • Alias:別名(如裸域)
  • appBase:該主機應用基礎目錄
  • Context:具體應用掛載點

七、生產環境優化清單

  1. JVM 參數:bin/setenv.sh 設置 -Xms2g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
  2. 連接器優化:啟用 NIO2 protocol="org.apache.coyote.http11.Http11Nio2Protocol"、調整 maxThreads、acceptCount
  3. 安全加固:禁用管理應用、配置 tomcat-users.xml 強密碼、啟用 HTTPS、設置 HttpOnly、Secure Cookie
  4. 日誌切割:配置 conf/logging.properties 每日滾動、限制大小
  5. 會話持久化:集群環境配置 DeltaManager 或 BackupManager
  6. 監控指標:JMX、Prometheus Exporter、CAT、SkyWalking 接入

八、常見問題排查

  • 啟動閃退 → JAVA_HOME 未配或指向 JRE
  • 端口衝突 → netstat -ano | findstr 8080 找佔用進程
  • 中文亂碼 → URIEncoding="UTF-8" 在 Connector、setCharacterEncodingFilter 在 web.xml
  • 靜態資源 404 → 檢查 docBase、Context path、welcome-file-list
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved