在阿里云服务器上运行 Spring Boot 项目,通常不需要非常复杂的配置,但需要确保网络、安全组、系统环境和应用配置四个层面正确无误。以下是详细步骤和注意事项:
✅ 一、基础环境准备
1. 安装 Java 运行时
Spring Boot 基于 Java,需安装 JDK(推荐 JDK 8 或 JDK 11/17):
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-11-jdk -y
# CentOS/RHEL
sudo yum install java-11-openjdk-devel -y
验证安装:
java -version
2. 可选:安装 Maven 或 Gradle(用于构建项目)
如果服务器仅用于运行已打包的 JAR 包,可不安装;若需在服务器上编译,则需安装。
✅ 二、上传并运行 Spring Boot 应用
方式一:直接运行 JAR 包(推荐)
- 将
target/*.jar上传到服务器(如/opt/app/myapp.jar)。 - 启动命令:
nohup java -jar /opt/app/myapp.jar > /var/log/myapp.log 2>&1 &
-Dserver.port=8080可指定端口
建议使用 systemd 或 Supervisor 管理进程,便于开机自启和日志监控。
示例 systemd 服务文件 /etc/systemd/system/myapp.service:
[Unit]
Description=My Spring Boot App
After=network.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/app/myapp.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
查看状态:
sudo systemctl status myapp
journalctl -u myapp -f
✅ 三、阿里云关键配置
🔑 1. 安全组规则(最关键!)
必须开放应用使用的端口(如 8080),否则外部无法访问。
操作路径:
ECS 控制台 → 实例 → 安全组 → 手动添加规则
| 方向 | 协议 | 端口范围 | 授权对象 | 描述 |
|---|---|---|---|---|
| 入站 | TCP | 8080 | 0.0.0.0/0 | Spring Boot |
| 入站 | TCP | 22 | 你的IP | SSH |
⚠️ 不要随意开放 0.0.0.0/0 的高危端口(如 3306、Redis 等),除非有认证机制。
🔑 2. 防火墙(云服务器内部)
检查是否开启 firewalld 或 ufw,并确保端口被放行:
# CentOS (firewalld)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
# Ubuntu (ufw)
sudo ufw allow 8080/tcp
sudo ufw enable # 首次启用
✅ 四、Spring Boot 应用自身配置
1. 绑定所有网卡(允许外部访问)
默认情况下,Spring Boot 只监听 localhost,需改为 0.0.0.0:
方法一:application.yml
server:
address: 0.0.0.0
port: 8080
方法二:启动参数
java -jar myapp.jar --server.address=0.0.0.0 --server.port=8080
2. 数据库连接(如使用 MySQL)
确保:
- 数据库服务器允许远程连接(MySQL 需修改
bind-address或用户权限) - 阿里云 RDS 需在白名单中添加 ECS 内网 IP 或公网 IP
- 使用内网域名访问 RDS 更快更稳定
示例 JDBC URL:
spring.datasource.url=jdbc:mysql://rm-xxx.mysql.rds.aliyuncs.com:3306/mydb?useSSL=false&serverTimezone=UTC
3. 其他常见配置调整
-
关闭调试日志(生产环境):
logging: level: root: WARN -
设置 JVM 内存参数(避免 OOM):
java -Xms512m -Xmx1024m -jar myapp.jar -
使用 Nginx 反向X_X + HTTPS(推荐生产环境)
✅ 五、验证访问
从本地浏览器访问:
http://<你的ECS公网IP>:8080/hello
若能正常返回响应,说明部署成功!
📌 最佳实践建议
| 项目 | 建议 |
|---|---|
| 进程管理 | 使用 systemd 或 Supervisor |
| 日志管理 | 使用 logback/slf4j 输出到文件,配合 logrotate |
| 性能优化 | 使用 Nginx 做反向X_X、静态资源缓存 |
| 安全加固 | 禁用 root 登录、使用非特权用户运行应用、定期更新系统 |
| 监控告警 | 集成 Prometheus + Grafana 或阿里云云监控 |
如有具体场景(如 Docker 部署、多实例集群、HTTPS 配置等),可进一步补充需求,我可提供更详细的方案。
CLOUD技术博