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

Ubuntu 下 Tomcat 服務器安裝配置與自啟動完整教程

     編輯:Java 相關知識

Ubuntu 環境下 Tomcat 部署全流程指南

在 Ubuntu 服務器部署 Java Web 應用時,Tomcat 是最主流的 Servlet 容器選擇。本文記錄從 JDK 安裝、Tomcat 部署、環境變量配置、服務管理到開機自啟的完整操作步驟,基於 Ubuntu 20.04+ LTS 版本驗證。

一、環境準備:JDK 安裝與配置

1.1 安裝 OpenJDK(推薦)


# 更新包索引
sudo apt update

# 安裝 OpenJDK 11/17/21 LTS 版本
sudo apt install openjdk-17-jdk -y

# 驗證安裝
java -version
# 輸出示例:
# openjdk version "17.0.8" 2023-07-18
# OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-1ubuntu120.04)
# OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-1ubuntu120.04, mixed mode, sharing)

1.2 配置 JAVA_HOME 環境變量


# 查找 JDK 安裝路徑
readlink -f $(which java)
# 輸出類似:/usr/lib/jvm/java-17-openjdk-amd64/bin/java
# JAVA_HOME 為:/usr/lib/jvm/java-17-openjdk-amd64

# 永久生效:編輯 /etc/profile
sudo vim /etc/profile

# 文件末尾添加
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 立即生效
source /etc/profile

# 驗證
echo $JAVA_HOME

二、Tomcat 安裝與配置

2.1 下載安裝(二進制分發版)


# 切換到 /opt 目錄
cd /opt

# 下載 Tomcat 9/10(從官網獲取最新鏈接)
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.18/bin/apache-tomcat-10.1.18.tar.gz

# 解壓
sudo tar -xzf apache-tomcat-10.1.18.tar.gz

# 重命名便於管理
sudo mv apache-tomcat-10.1.18 tomcat10

# 創建專用用戶(安全最佳實踐)
sudo useradd -r -m -U -d /opt/tomcat10 -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat10
sudo chmod +x /opt/tomcat10/bin/*.sh

2.2 配置 CATALINA_HOME 與環境變量


# 編輯 /etc/profile 追加
sudo vim /etc/profile

export CATALINA_HOME=/opt/tomcat10
export CATALINA_BASE=/opt/tomcat10
export PATH=$PATH:$CATALINA_HOME/bin

source /etc/profile

2.3 核心配置文件調整


# 1. 修改端口(避免衝突 8080)
sudo vim /opt/tomcat10/conf/server.xml
# 修改  為 8080 或其他

# 2. 管理界面訪問授權(可選)
sudo vim /opt/tomcat10/conf/tomcat-users.xml
# 添加用戶角色
# 
# 
# 

# 3. 允許遠程訪問管理界面(生產環境建議關閉或配置 IP 白名單)
sudo vim /opt/tomcat10/webapps/manager/META-INF/context.xml
# 註釋掉 Valve 限制或添加 allow 規則

三、Systemd 服務管理(現代 Linux 標準)

3.1 創建 systemd 服務文件


sudo vim /etc/systemd/system/tomcat.service

文件內容:


[Unit]
Description=Apache Tomcat 10 Servlet Container
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_HOME=/opt/tomcat10
Environment=CATALINA_BASE=/opt/tomcat10
Environment=CATALINA_PID=/opt/tomcat10/temp/tomcat.pid
Environment=CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseG1GC
ExecStart=/opt/tomcat10/bin/startup.sh
ExecStop=/opt/tomcat10/bin/shutdown.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

3.2 服務管理命令


# 重載 systemd
sudo systemctl daemon-reload

# 啟動並設置開機自啟
sudo systemctl start tomcat
sudo systemctl enable tomcat

# 常用操作
sudo systemctl status tomcat    # 查看狀態
sudo systemctl stop tomcat      # 停止
sudo systemctl restart tomcat   # 重啟
sudo journalctl -u tomcat -f    # 查看實時日誌

四、驗證與常見問題排查

4.1 訪問驗證

  • 瀏覽器訪問:https://your-server-ip:8080
  • 應看到 Tomcat 默認歡迎頁面
  • 管理界面:https://ip:8080/manager/html

4.2 常見問題對照表

現象可能原因解決方案
啟動失敗端口被佔用netstat -tlnp | grep 8080 檢查並殺死進程或改端口
403 禁止訪問管理頁IP 限制修改 context.xml 允許訪問或配置反向代理
中文亂碼編碼未統一server.xml Connector 添加 URIEncoding="UTF-8"
內存溢出堆內存不足調整 CATALINA_OPTS -Xmx 參數
權限錯誤文件屬主問題chown -R tomcat:tomcat /opt/tomcat10

五、生產環境優化建議

  1. JVM 調優:根據服務器內存設置 -Xms -Xmx、啟用 G1GC、配置 GC 日誌
  2. 連接池:在 context.xml 配置 JNDI 數據源,避免應用層管理連接
  3. 安全加固:禁用管理界面、修改默認端口、配置 HTTPS、限制訪問 IP
  4. 日誌輪轉:配置 logrotate 管理 catalina.out 防止磁盤撐爆
  5. 監控告警:集成 Prometheus JMX Exporter 或使用 Tomcat Manager API 監控

六、遷移至 Docker 部署(現代化選擇)


# 一鍵啟動生產級容器
docker run -d \
  --name tomcat10 \
  --restart unless-stopped \
  -p 8080:8080 \
  -v /opt/tomcat10/webapps:/usr/local/tomcat/webapps \
  -v /opt/tomcat10/logs:/usr/local/tomcat/logs \
  -v /opt/tomcat10/conf:/usr/local/tomcat/conf \
  -e JAVA_OPTS="-Xms512m -Xmx1024m" \
  tomcat:10.1-jdk17

掌握原生部署流程有助於理解容器化背後的原理,生產環境強烈建議使用 Docker 或 Kubernetes 編排管理,實現不可變基礎設施與藍綠部署。

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