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

服务器

在京东云服务器(如京东云轻量应用服务器或云主机)上配置 Spring Boot 应用程序自动启动,可以按照以下步骤进行。这里以 Linux 系统(如 CentOS 或 Ubuntu)为例。


? 一、部署 Spring Boot 应用

  1. 上传 JAR 包
    将你的 Spring Boot 打包好的 .jar 文件上传到服务器,例如:

    scp your-app.jar root@your-server-ip:/opt/app/
  2. 确保 Java 已安装
    检查 Java 是否已安装:

    java -version

    如果没有安装,请安装 JDK(推荐 OpenJDK 8 或 11):

    • Ubuntu:
      sudo apt update
      sudo apt install openjdk-11-jdk -y
    • CentOS:
      sudo yum install java-11-openjdk-devel -y
  3. 测试运行应用
    在命令行中测试是否能正常运行:

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

? 二、配置开机自启(使用 systemd)

这是最推荐的方式,适用于现代 Linux 发行版。

1. 创建服务文件

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

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

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

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

[Install]
WantedBy=multi-user.target

✅ 注意事项:

  • User=:建议创建专用用户(如 appuser)并改为非 root 用户运行。
  • ExecStart:指定完整的 Java 路径(可用 which java 查看)。
  • 日志输出可通过 journalctl -u your-app.service 查看。

2. 启用服务

# 重新加载 systemd 配置
sudo systemctl daemon-reexec

# 启用开机自启
sudo systemctl enable your-app.service

# 启动服务
sudo systemctl start your-app.service

# 查看状态
sudo systemctl status your-app.service

? 三、验证自动启动

  1. 重启服务器测试

    sudo reboot
  2. 登录后检查服务状态:

    systemctl status your-app.service
  3. 检查应用是否监听端口(如 8080):

    netstat -tuln | grep 8080
  4. 查看日志:

    journalctl -u your-app.service -f

✅ 四、其他优化建议

  1. 配置环境变量(可选)

    可在服务文件中添加:

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

    并修改 ExecStart

    ExecStart=/usr/bin/java $JAVA_OPTS -jar /opt/app/your-app.jar
  2. 防火墙开放端口

    如果使用了防火墙(如 firewalld 或 ufw),需开放应用端口:

    • Ubuntu (ufw):
      sudo ufw allow 8080
    • CentOS (firewalld):
      sudo firewall-cmd --permanent --add-port=8080/tcp
      sudo firewall-cmd --reload
  3. 域名与反向X_X(可选)

    使用 Nginx 做反向X_X:

    server {
        listen 80;
        server_name your-domain.com;
    
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

? 总结

步骤 内容
1 上传 JAR 文件并确保 Java 可用
2 编写 systemd 服务文件 /etc/systemd/system/your-app.service
3 启用服务:systemctl enable/start your-app.service
4 重启测试自动启动是否生效

通过以上配置,你的 Spring Boot 应用将在京东云服务器开机时自动启动,并在崩溃后自动重启(得益于 Restart=always),实现稳定运行。

如有需要,也可以结合 Jenkins、Docker 等进一步自动化部署。

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