在阿里云轻量应用服务器(Lightweight Application Server)上部署 Spring Boot 项目,通常分为准备环境、上传代码/包、启动服务和配置安全组四个核心步骤。以下是详细操作流程:
一、前置准备
-
登录阿里云控制台
- 进入「轻量应用服务器」实例列表,选择目标实例并点击「远程连接」(推荐使用 VNC 或 SSH)。
- 或使用本地终端通过 SSH 连接:
ssh root@<你的公网IP>
-
确认系统基础环境
轻量应用服务器默认预装 CentOS/Ubuntu/Debian 等主流系统,建议先更新软件源:# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y
二、安装 Java 环境
Spring Boot 依赖 JDK 8+(推荐 JDK 17 或 21):
# Ubuntu/Debian 安装 OpenJDK 17
sudo apt install openjdk-17-jdk -y
# CentOS 安装 OpenJDK 17
sudo yum install java-17-openjdk-devel -y
# 验证安装
java -version
javac -version
✅ 提示:若需特定版本(如 JDK 8),可使用
apt install openjdk-8-jdk或通过 SDKMAN 管理多版本。
三、部署 Spring Boot 项目
方案 A:直接上传 JAR 包(推荐,适用于已构建好的项目)
-
本地打包项目(确保使用 Maven/Gradle 构建):
mvn clean package -DskipTests # 生成 target/your-app.jar -
上传到服务器(使用
scp或 SFTP):scp target/your-app.jar root@<你的公网IP>:/opt/spring-boot-app/💡 建议创建独立目录避免权限问题:
mkdir -p /opt/spring-boot-app chmod 755 /opt/spring-boot-app -
启动应用:
cd /opt/spring-boot-app nohup java -jar your-app.jar --server.port=8080 > app.log 2>&1 &nohup保证后台运行;--server.port=8080可自定义端口(默认 8080);- 日志输出到
app.log便于排查。
-
查看进程与日志:
ps aux | grep your-app.jar tail -f app.log
方案 B:源码部署 + 在线编译(适合开发调试)
- 克隆项目到服务器:
git clone https://github.com/your-repo/your-project.git /opt/spring-boot-app cd /opt/spring-boot-app - 安装 Maven(若未预装):
sudo apt install maven -y # Ubuntu # 或 CentOS: sudo yum install maven -y - 构建并启动:
mvn clean package -DskipTests nohup java -jar target/your-app.jar > app.log 2>&1 &
四、配置安全组与防火墙(关键!)
否则外部无法访问应用:
-
阿里云控制台设置安全组规则
- 进入实例详情页 → 「安全组」→ 编辑规则
- 添加入方向规则:
- 协议:TCP
- 端口范围:
8080(或你指定的端口) - 授权对象:
0.0.0.0/0(生产环境建议限制为固定 IP)
-
检查服务器内部防火墙(如启用 firewalld/ufw):
# Ubuntu (UFW) sudo ufw allow 8080/tcp sudo ufw enable # CentOS (Firewalld) sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
五、进阶优化建议
| 需求 | 方案 |
|---|---|
| 开机自启 | 创建 systemd 服务文件 /etc/systemd/system/spring-boot.service |
| 域名绑定 | 在轻量服务器购买 SSL 证书 + Nginx 反向X_X(监听 80/443) |
| 日志轮转 | 使用 logrotate 或集成 ELK 栈 |
| 健康检查 | 启用 Spring Actuator 端点 /actuator/health |
示例:systemd 服务配置
# /etc/systemd/system/spring-boot.service
[Unit]
Description=My Spring Boot App
After=syslog.target network.target
[Service]
User=root
WorkingDirectory=/opt/spring-boot-app
ExecStart=/usr/bin/java -jar your-app.jar
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable spring-boot
sudo systemctl start spring-boot
六、验证部署成功
- 浏览器访问:
http://<你的公网IP>:8080 - 本地 curl 测试:
curl http://localhost:8080/actuator/health - 查看实时日志:
tail -f /opt/spring-boot-app/app.log
✅ 注意事项:
- 生产环境务必修改默认密码、禁用 root 远程登录、使用密钥认证;
- 数据库连接建议使用内网 RDS(轻量服务器可直接连同一账号下的 RDS,降低延迟);
- 定期备份数据与应用代码(可用阿里云快照功能)。
需要我提供完整的 systemd 配置文件模板、Nginx 反向X_X配置,或 Docker 化部署方案吗?
CLOUD技术笔记