在阿里云轻量应用服务器(Lightweight Application Server)上部署 Spring Boot 项目,通常分为 环境准备、代码上传、打包运行 和 安全配置 四个阶段。以下是详细步骤:
一、前置准备
- 购买并登录轻量应用服务器
- 选择 CentOS/Ubuntu 等操作系统镜像。
- 安装 JDK 8+、Maven(可选)、Git 等工具(若本地已打包可跳过)。
- 本地构建 Spring Boot 项目
mvn clean package -DskipTests # 生成 target/*.jar 文件 - 确认端口与防火墙
- Spring Boot 默认端口为
8080,需在控制台开放该端口(或自定义端口)。
- Spring Boot 默认端口为
二、上传项目到服务器
方式 1:使用 SCP 命令(推荐)
# 将本地 jar 包上传至服务器(替换实际路径和 IP)
scp target/myapp.jar root@<服务器IP>:/opt/app/
方式 2:通过 SFTP 工具(如 FileZilla)
- 连接地址:
sftp://<服务器IP> - 用户名:
root - 密码:登录密码或密钥
三、在服务器上启动项目
1. 安装 Java(如未预装)
# Ubuntu/Debian
sudo apt update && sudo apt install openjdk-17-jdk -y
# CentOS/RHEL
sudo yum install java-17-openjdk-devel -y
验证:
java -version
2. 创建运行目录并解压/放置 jar 包
mkdir -p /opt/app
cd /opt/app
# 若已上传则直接执行下一步;否则从本地复制
3. 启动 Spring Boot 应用
nohup java -jar myapp.jar --server.port=8080 > app.log 2>&1 &
nohup:后台运行,避免终端关闭后进程终止> app.log 2>&1:将日志输出到app.log文件&:后台运行
查看进程状态:
ps -ef | grep myapp.jar
tail -f app.log
四、配置公网访问与安全组
- 登录阿里云控制台 → 轻量应用服务器 → 点击实例 → “防火墙”
- 添加规则:
- 协议:TCP
- 端口:
8080(或你配置的端口) - 授权对象:
0.0.0.0/0(生产环境建议限制特定 IP)
⚠️ 注意:Spring Boot 默认绑定
localhost,需确保启动参数包含--spring.profiles.active=prod或在application.yml中设置:server: address: 0.0.0.0
五、进阶优化(可选)
-
使用 systemd 管理服务(实现开机自启):
sudo vim /etc/systemd/system/myapp.service内容示例:
[Unit] Description=My Spring Boot App After=network.target [Service] User=root WorkingDirectory=/opt/app ExecStart=/usr/bin/java -jar myapp.jar Restart=always [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload sudo systemctl enable myapp sudo systemctl start myapp -
反向X_X + Nginx(推荐生产环境):
- 监听 80/443 端口,转发到
localhost:8080 - 支持 HTTPS、静态资源缓存等
- 监听 80/443 端口,转发到
-
日志轮转:使用
logback-spring.xml或logrotate管理日志大小。
常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法访问页面 | 检查安全组端口、Spring Boot 是否绑定 0.0.0.0、防火墙是否拦截 |
| 内存溢出 | 增加 JVM 参数:-Xms512m -Xmx2g |
| 端口被占用 | lsof -i:8080 查占用进程,改用其他端口 |
| 数据库连接失败 | 检查远程数据库白名单、网络连通性(telnet db-host port) |
如需自动化部署,可结合 Jenkins/GitLab CI + Docker 实现持续集成。需要具体脚本或 Dockerfile 示例,欢迎告诉我你的技术栈细节!
云小栈