温馨提示×

centos java服务怎样部署

小樊
45
2026-09-11 16:06:01
栏目: 编程语言

在 CentOS 上部署 Java 服务(通常是 Spring Boot 或普通 Java 应用),一般有以下几种常见方式。下面从最常用、最稳妥的方式讲起。


一、部署前准备

1. 安装 JDK

# 查看是否已安装
java -version

# 安装 OpenJDK(推荐 8/11/17)
sudo yum install -y java-11-openjdk-devel

验证:

java -version

2. 上传 Java 程序

常见形式:

  • xxx.jar(Spring Boot)
  • xxx.war(Tomcat)

上传方式:

scp app.jar user@centos_ip:/opt/app/

二、方式一:直接运行 Jar(最简单)

1. 运行

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

查看日志:

tail -f app.log

⚠️ 缺点:服务器重启后不会自动启动


三、方式二:systemd 托管(推荐)

1. 创建服务文件

sudo vi /etc/systemd/system/myapp.service

示例内容:

[Unit]
Description=My Java App
After=network.target

[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

2. 创建运行用户(可选)

sudo useradd -M -s /sbin/nologin appuser
sudo chown -R appuser:appuser /opt/app

3. 启动服务

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

4. 常用命令

systemctl status myapp
systemctl restart myapp
journalctl -u myapp -f

✅ 推荐生产环境使用


四、方式三:Nginx + Java(常见架构)

用户 → Nginx(80) → Java(8080)

1. 安装 Nginx

sudo yum install -y nginx
sudo systemctl start nginx

2. 配置反向代理

sudo vi /etc/nginx/conf.d/myapp.conf
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}
sudo nginx -t
sudo systemctl reload nginx

五、防火墙设置

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

六、常见问题

1. 端口被占用

netstat -tunlp | grep 8080

2. 内存不足

java -Xms512m -Xmx1024m -jar app.jar

3. 开机不自启

systemctl enable myapp

七、总结(推荐方案)

场景 推荐方式
测试 nohup java -jar
生产 systemd
对外访问 Nginx + Java

如果你愿意,可以告诉我:

  • 是 Spring Boot / 普通 Java / War
  • CentOS 版本(7 / 8 / Stream)
  • 是否要 公网访问 / HTTPS

我可以给你一套完整可直接用的部署方案。

0 踩