温馨提示×

centos怎样部署java项目

小樊
43
2026-09-21 00:58:34
栏目: 编程语言

CentOS 上部署 Java 项目,通常分为 环境准备 → 项目打包 → 部署运行 → 开机自启/反向代理 几个步骤。下面以 CentOS 7/8 为例,给你一套通用方案(适用于 Spring Boot、普通 Java Web 等项目)。


一、环境准备

1. 安装 JDK

推荐使用 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

2. 安装 MySQL(可选,视项目而定)

yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb

初始化:

mysql_secure_installation

二、项目打包

1. Spring Boot 项目

本地打包:

mvn clean package
# 或
gradle build

上传 jar 到服务器:

scp target/app.jar root@ip:/opt/app/

2. 传统 Java Web 项目(WAR)

需要 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/

三、运行 Java 项目

方式一:直接运行 jar(最常用)

mkdir -p /opt/app
cd /opt/app
nohup java -jar app.jar > app.log 2>&1 &

查看日志:

tail -f app.log

方式二:使用 systemd(推荐)

创建服务:

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

云服务器还要在 安全组 放行端口。


五、使用 Nginx 反向代理(推荐)

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

后台运行断开 使用 nohupsystemd


七、典型部署结构(推荐)

/opt/app/
 ├── app.jar
 ├── app.log
 └── config/
     └── application.yml

如果你告诉我:

  • ✅ CentOS 版本
  • ✅ Java 项目类型(Spring Boot / SSM / WAR)
  • ✅ 是否用 Docker

我可以给你 更精确的部署方案

0