在 CentOS 上部署 Java 项目,通常分为 环境准备 → 项目打包 → 部署运行 → 开机自启/反向代理 几个步骤。下面以 CentOS 7/8 为例,给你一套通用方案(适用于 Spring Boot、普通 Java Web 等项目)。
推荐使用 OpenJDK 8 或 11
# CentOS 7
yum install -y java-1.8.0-openjdk-devel
# CentOS 8
dnf install -y java-11-openjdk-devel
验证:
java -version
yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
初始化:
mysql_secure_installation
本地打包:
mvn clean package
# 或
gradle build
上传 jar 到服务器:
scp target/app.jar root@ip:/opt/app/
需要 Tomcat
wget https://archive.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
tar -zxvf apache-tomcat-9.0.85.tar.gz -C /opt/
把 xxx.war 放到:
/opt/apache-tomcat-9.0.85/webapps/
mkdir -p /opt/app
cd /opt/app
nohup java -jar app.jar > app.log 2>&1 &
查看日志:
tail -f app.log
创建服务:
vim /etc/systemd/system/java-app.service
内容示例:
[Unit]
Description=Java App
After=network.target
[Service]
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
启动:
systemctl daemon-reload
systemctl start java-app
systemctl enable java-app
# 开放端口(如 8080)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
云服务器还要在 安全组 放行端口。
yum install -y nginx
配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
systemctl restart nginx
✅ 端口被占用
netstat -tunlp | grep 8080
✅ 内存不足
java -Xms256m -Xmx512m -jar app.jar
✅ 后台运行断开
使用 nohup 或 systemd
/opt/app/
├── app.jar
├── app.log
└── config/
└── application.yml
如果你告诉我:
我可以给你 更精确的部署方案。