首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 部署 Tomcat + JDK + MySQL Java Web 應用平台完整教程

     編輯:MySQL 資料庫相關知識

CentOS/RedHat 手動部署 Tomcat + JDK + MySQL 生產環境

雖然現代 Java 部署多使用 Docker、SDKMAN、Ansible 自動化,但掌握手動部署 JDK、Tomcat、MySQL 的完整流程,對理解類別載入機制、連接池配置、GC 調優、服務管理至關重要。本文記錄經典生產級部署步驟與關鍵配置。

軟體版本規劃(示例)

組件版本安裝路徑備註
JDK1.8.0_332 (LTS)/usr/java/jdk1.8.0_332Oracle JDK 或 OpenJDK 均可
Tomcat9.0.73/usr/local/tomcat9Servlet 4.0, JSP 2.3
MySQL8.0.32/usr/local/mysql或使用系統包管理器安裝

1. MySQL 安裝與配置

RPM 包安裝(推薦生產):

# 下載 MySQL Yum Repository
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
yum install -y mysql-community-server

# 啟動與安全初始化
systemctl start mysqld
systemctl enable mysqld
# 獲取臨時 root 密碼
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation

開放遠程 root 訪問(僅開發/測試環境):

mysql -u root -p
ALTER USER 'root'@'%' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

生產環境建議:建立專用應用帳號、限制來源 IP、啟用 SSL、配置 bind-address=0.0.0.0。

2. JDK 安裝

# 解壓 Oracle JDK
tar zxvf jdk-8u332-linux-x64.tar.gz -C /usr/java/
# 或安裝 OpenJDK
yum install -y java-1.8.0-openjdk-devel

# 環境變數配置 /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_332
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile
java -version  # 驗證

3. Tomcat 安裝與配置

# 解壓
tar zxvf apache-tomcat-9.0.73.tar.gz -C /usr/local/
mv /usr/local/apache-tomcat-9.0.73 /usr/local/tomcat9

# 環境變數 /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat9
export CATALINA_BASE=/usr/local/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH

# 建立專用運行用戶(安全最佳實踐)
useradd -r -s /bin/false tomcat
chown -R tomcat:tomcat /usr/local/tomcat9

# 配置連接池 (context.xml 或 server.xml Resource)
# 編輯 conf/context.xml

4. 系統服務註冊

# 建立 systemd 服務檔 /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 9
After=network.target mysqld.service

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/java/jdk1.8.0_332
Environment=CATALINA_HOME=/usr/local/tomcat9
Environment=CATALINA_BASE=/usr/local/tomcat9
ExecStart=/usr/local/tomcat9/bin/startup.sh
ExecStop=/usr/local/tomcat9/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 重載並啟用
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat

5. 驗證與測試

# 訪問管理介面
https://server_ip:8080/manager/html
# 部署測試 WAR
cp sample.war /usr/local/tomcat9/webapps/
# 檢查日誌
tail -f /usr/local/tomcat9/logs/catalina.out

關鍵生產級調優參數

  • JVM 參數 (setenv.sh):CATALINA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
  • Tomcat 連接器 (server.xml):maxThreads="200" acceptCount="100" connectionTimeout="20000" compression="on"
  • MySQL 連接池:maxTotal 對應 max_connections,預留 20% 給管理連接。
  • 防火牆:僅開放 80/443 (Nginx 反向代理) + 22 (SSH),3306/8080 僅內網可訪問。

手動部署能精確控制每個組件版本、參數、權限,是排查類別載入衝突、連接洩漏、GC 停頓等疑難雜症的基礎。生產環境強烈建議容器化或基礎設施即代碼管理。

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