在京东云服务器(如京东云轻量云主机或云主机)上配置 Spring Boot 应用程序自动启动,通常需要以下几个步骤:将应用打包、部署、创建系统服务,并设置开机自启。以下是详细操作指南:
一、准备工作
-
登录京东云服务器
使用 SSH 登录你的京东云服务器:ssh root@your-server-ip -
安装 Java 环境
确保已安装 JDK(推荐 JDK 8 或 JDK 11):java -version如果未安装,以 Ubuntu/Debian 为例:
sudo apt update sudo apt install openjdk-11-jdk -y -
上传 Spring Boot 应用
将打包好的 JAR 文件(如myapp.jar)上传到服务器,例如使用scp:scp myapp.jar root@your-server-ip:/root/app/或者在服务器上使用
wget下载。
二、创建启动脚本(可选)
虽然可以直接用 systemd 托管 JAR,但建议创建一个启动脚本便于管理。
创建脚本文件:
sudo nano /root/app/start.sh
写入内容:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际路径调整
export PATH=$JAVA_HOME/bin:$PATH
cd /root/app
nohup java -jar myapp.jar > app.log 2>&1 &
赋予执行权限:
chmod +x /root/app/start.sh
⚠️ 注意:你也可以不使用脚本,直接在 systemd 中调用
java -jar。
三、使用 systemd 创建系统服务(推荐方式)
这是实现开机自动启动的标准方法。
-
创建服务文件
sudo nano /etc/systemd/system/myapp.service -
写入以下内容(根据实际情况修改路径和用户):
[Unit] Description=My Spring Boot Application After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/root/app ExecStart=/usr/bin/java -jar /root/app/myapp.jar Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target🔍 说明:
User=root:可以改为普通用户(更安全)Restart=always:崩溃后自动重启WorkingDirectory:指定工作目录ExecStart:直接运行 JAR,无需脚本
-
重新加载 systemd 配置
sudo systemctl daemon-reexec sudo systemctl daemon-reload -
启用开机自启
sudo systemctl enable myapp.service -
启动服务
sudo systemctl start myapp.service -
查看状态和日志
sudo systemctl status myapp.service sudo journalctl -u myapp.service -f
四、验证开机自启
可以重启服务器测试是否自动启动:
sudo reboot
重启后再次连接,检查服务状态:
systemctl status myapp.service
如果状态为 active (running),说明配置成功。
五、(可选)安全增强建议
-
不要使用 root 用户运行应用
创建专用用户:sudo useradd -r -m -s /bin/bash myappuser sudo chown -R myappuser:myappuser /root/app然后在 service 文件中修改
User=myappuser -
使用 Nginx 反向X_X(生产环境推荐)
将 80/443 请求转发到 Spring Boot 的端口(如 8080) -
配置防火墙
开放必要端口(如 8080):sudo ufw allow 8080
六、常见问题排查
- 应用无法启动?
检查日志:journalctl -u myapp.service - 端口被占用?
使用netstat -tulnp | grep 8080查看 - Java 路径错误?
使用which java确认路径,在ExecStart中使用完整路径
✅ 总结:
通过 systemd 服务 + enable 自启 是最稳定、标准的方式。京东云服务器与普通 Linux 无异,因此配置方法通用。
如有使用 Docker 部署需求,也可进一步集成(但非必须)。
云计算HECS