走啊走
加油

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

服务器价格表

在京东云服务器(如京东云轻量云主机或云主机)上配置 Spring Boot 应用程序自动启动,可以按照以下步骤操作。这里以 Linux 系统(如 CentOS 或 Ubuntu)为例,使用 systemd 服务管理器来实现开机自启。


✅ 步骤一:准备 Spring Boot 的可执行 JAR 包

  1. 使用 Maven 或 Gradle 构建你的 Spring Boot 项目,生成一个可运行的 JAR 文件。

    mvn clean package

    生成的文件通常位于 target/your-app.jar

  2. 将 JAR 文件上传到京东云服务器,例如放在 /opt/myapp/ 目录下:

    scp target/your-app.jar root@your-server-ip:/opt/myapp/app.jar

✅ 步骤二:安装并配置 Java 环境

确保服务器已安装 Java 8 或更高版本:

java -version

如果没有安装,请安装 OpenJDK:

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install openjdk-17-jdk -y
  • CentOS/RHEL:

    sudo yum install java-17-openjdk-devel -y

✅ 步骤三:创建 systemd 服务文件

创建一个系统服务来管理 Spring Boot 应用。

  1. 创建服务文件:

    sudo vim /etc/systemd/system/myapp.service
  2. 写入以下内容(根据实际情况修改路径和用户):

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

[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
WorkingDirectory=/opt/myapp
SuccessExitStatus=143
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

🔍 参数说明:

  • User: 建议使用非 root 用户提高安全性(如创建 myapp 用户)
  • ExecStart: 启动命令,指定 Java 和 JAR 路径
  • WorkingDirectory: 工作目录
  • Restart=always: 崩溃后自动重启
  • StandardOutput/StandardError: 日志输出到 journal

✅ 步骤四:启用并启动服务

# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl enable myapp.service

# 启动服务
sudo systemctl start myapp.service

# 查看状态
sudo systemctl status myapp.service

如果看到 active (running),说明启动成功。


✅ 步骤五:查看日志(调试用)

sudo journalctl -u myapp.service -f

✅ 步骤六:设置开机自动启动(已由 enable 实现)

执行 systemctl enable myapp.service 后,服务已在系统启动时自动运行。


✅ 可选优化建议

  1. 使用非 root 用户运行应用

    sudo useradd -r -s /bin/false myapp
    sudo chown -R myapp:myapp /opt/myapp

    然后在 service 文件中将 User=myapp

  2. 配置环境变量(如 Spring Profiles)
    在 service 文件中添加:

    Environment="SPRING_PROFILES_ACTIVE=prod"
    Environment="JAVA_OPTS=-Xms512m -Xmx1g"

    并修改 ExecStart

    ExecStart=/usr/bin/java $JAVA_OPTS -jar /opt/myapp/app.jar
  3. 开放防火墙端口(如 8080)

    sudo ufw allow 8080    # Ubuntu
    # 或
    sudo firewall-cmd --permanent --add-port=8080/tcp  # CentOS
    sudo firewall-cmd --reload

✅ 验证自动启动

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

sudo reboot

重启后登录,运行:

sudo systemctl status myapp.service

应显示为 active (running)


总结

通过 systemd 创建服务是 Linux 上部署 Spring Boot 应用的标准方式,稳定、安全且支持开机自启。在京东云服务器上配置完成后,你的 Spring Boot 应用即可长期稳定运行。

如有需要,也可以结合 Nginx 做反向X_X,或使用宝塔面板简化管理。

如需脚本自动化部署,也可提供帮助。