京东云服务器如何配置自动启动Spring Boot应用程序?

在京东云服务器(如京东云的云主机 CVM)上配置 Spring Boot 应用程序自动启动,通常需要完成以下步骤:


✅ 一、准备工作

  1. 确保 JDK 已安装

    java -version

    若未安装,请安装 OpenJDK 或 Oracle JDK:

    # Ubuntu/Debian
    sudo apt update
    sudo apt install openjdk-17-jdk -y
    
    # CentOS/RHEL
    sudo yum install java-17-openjdk-devel -y
  2. 上传 Spring Boot 的 JAR 包
    使用 scprsync 或 SFTP 将你的 app.jar 上传到服务器,例如:

    scp app.jar user@your-server-ip:/home/user/app/

✅ 二、创建系统服务(推荐方式:使用 systemd)

这是最稳定、推荐的方法,让 Spring Boot 应用作为系统服务运行,并支持开机自启。

1. 创建服务文件

sudo vim /etc/systemd/system/springboot-app.service

写入以下内容(根据实际情况修改路径和用户):

[Unit]
Description=Spring Boot Application
After=syslog.target

[Service]
User=your-username           # 替换为实际用户名,如 ubuntu、root 等
WorkingDirectory=/home/your-username/app
ExecStart=/usr/bin/java -jar /home/your-username/app/app.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

🔍 注意事项:

  • User:建议不要用 root,创建专用用户更安全。
  • WorkingDirectory:应用所在目录。
  • ExecStart:启动命令,可添加 JVM 参数,如 -Xms512m -Xmx1g
  • Restart=always:崩溃后自动重启。

2. 重载 systemd 并启用服务

# 重载配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start springboot-app

# 设置开机自启
sudo systemctl enable springboot-app

# 查看状态
sudo systemctl status springboot-app

✅ 三、查看日志(调试用)

# 查看实时日志
sudo journalctl -u springboot-app -f

# 查看最近的日志
sudo journalctl -u springboot-app --since "1 hour ago"

✅ 四、(可选)防火墙开放端口

如果 Spring Boot 应用监听的是非标准端口(如 8080),请确保京东云控制台的安全组已放行该端口。

🌐 登录京东云控制台 → 云主机 → 安全组 → 添加规则:

  • 协议:TCP
  • 端口:8080
  • 源 IP:0.0.0.0/0(或限制为可信 IP)

✅ 五、测试开机自启

可以重启服务器测试是否自动启动:

sudo reboot

重启后登录,检查服务状态:

systemctl status springboot-app

如果显示 active (running),说明配置成功。


✅ 六、其他方式(不推荐)

方法 说明
crontab @reboot 简单但不易管理日志和进程,适合临时测试
/etc/rc.local 传统方式,现代系统中已被 systemd 取代

示例(不推荐):

# 编辑
sudo crontab -e
# 添加
@reboot sleep 10 && /usr/bin/java -jar /path/to/app.jar > /var/log/app.log 2>&1 &

✅ 总结

✅ 推荐方案:使用 systemd 创建服务 + 开机自启

优点:

  • 支持开机自启
  • 崩溃自动重启
  • 日志集中管理(journalctl)
  • 标准化运维

如有更多需求(如 Nginx 反向X_X、HTTPS、多实例部署等),可继续扩展。欢迎追问!

未经允许不得转载:秒懂云 » 京东云服务器如何配置自动启动Spring Boot应用程序?