在阿里云服务器上运行 Spring Boot 项目,需要根据项目的规模、预期并发量以及部署环境(开发/测试/生产)来合理配置。以下是从基础必备到优化建议的完整配置指南:
一、基础必备配置(所有场景)
1. 操作系统与软件环境
- 操作系统:推荐 CentOS 7+ / Ubuntu 20.04+(稳定性好,社区支持广)
- JDK 版本:
- Spring Boot 3.x → 必须 JDK 17+
- Spring Boot 2.7.x → 推荐 JDK 8/11/17(需与项目
pom.xml中<java.version>一致)
- Maven/Gradle:用于构建打包(若使用 Docker 可跳过本地构建)
- 防火墙规则:开放必要端口(如
8080、22、3306等)
✅ 检查命令:
java -version mvn -v firewall-cmd --list-all # CentOS ufw status # Ubuntu
2. 安全组配置(阿里云控制台)
| 在【云服务器 ECS】→【安全组】中添加入方向规则: | 协议 | 端口 | 授权对象 | 说明 |
|---|---|---|---|---|
| TCP | 22 | 0.0.0.0/0 | SSH 登录(生产环境建议限制 IP) | |
| TCP | 8080 | 0.0.0.0/0 | Spring Boot 应用端口(或反向X_X后 80/443) | |
| TCP | 3306 | 仅内网 IP 或特定 IP | MySQL 数据库(严禁公网暴露) |
⚠️ 注意:生产环境务必通过 Nginx/Apache 做反向X_X,避免直接暴露应用端口。
二、推荐服务器规格(按场景选择)
| 场景 | CPU | 内存 | 带宽 | 磁盘 | 说明 |
|---|---|---|---|---|---|
| 开发/测试 | 2核 | 4GB | 5Mbps | 40GB SSD | 成本低,满足基本调试 |
| 小型生产(日活<1万) | 2~4核 | 4~8GB | 5~10Mbps | 60GB+ SSD | 可支撑简单 CRUD + 少量缓存 |
| 中型生产(日活1~10万) | 4~8核 | 8~16GB | 10~20Mbps | 80GB+ SSD + 云盘备份 | 需配合 Redis、MySQL 主从 |
| 高并发/微服务集群 | 8核+ | 16GB+ | 按需弹性 | 高性能云盘 | 建议结合 SLB + 容器化部署 |
💡 提示:Spring Boot 默认 JVM 堆大小约为物理内存的 1/4,若内存紧张可手动调整
-Xmx。
三、关键优化配置
1. JVM 参数调优(启动脚本示例)
nohup java -jar
-Xms2g -Xmx2g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-Dspring.profiles.active=prod
your-app.jar > app.log 2>&1 &
-Xms/-Xmx:固定堆大小,避免频繁 GCG1GC:适合大内存、低延迟场景(JDK 9+ 推荐)- 生产环境建议开启
-XX:+HeapDumpOnOutOfMemoryError便于排查 OOM
2. 日志管理
- 使用 Logback 或 Log4j2 输出结构化日志
- 配置日志轮转(如
logback-spring.xml中的<rollingPolicy>) - 可选接入阿里云 SLS(日志服务)实现集中监控
3. 进程守护
-
推荐使用
systemd创建服务单元:# /etc/systemd/system/myapp.service [Unit] Description=My Spring Boot App After=network.target [Service] User=ubuntu ExecStart=/usr/bin/java -jar /opt/app/myapp.jar Restart=always Environment="JAVA_OPTS=-Xms2g -Xmx2g" [Install] WantedBy=multi-user.target然后执行:
sudo systemctl daemon-reload sudo systemctl enable myapp sudo systemctl start myapp
四、进阶建议(生产环境)
- ✅ 部署方式:
- 单机:JAR 包 + systemd
- 多实例:Docker + Kubernetes / ECS 多节点 + SLB 负载均衡
- ✅ 数据库:使用 RDS MySQL(而非自建),启用自动备份 + 读写分离
- ✅ 缓存:Redis 集群(阿里云云数据库 Redis 版)
- ✅ 监控告警:
- 应用层:Spring Boot Actuator + Prometheus + Grafana
- 系统层:阿里云云监控(CPU、内存、磁盘、网络)
- ✅ CI/CD:GitLab CI / Jenkins + 阿里云容器镜像服务(ACR)
五、快速验证清单
部署完成后,请依次检查:
curl http://<EIP>:8080/actuator/health→ 返回{"status":"UP"}tail -f /var/log/syslog或journalctl -u myapp查看启动日志- 模拟请求压测(如
ab或wrk)观察响应时间与错误率 - 确认安全组无多余开放端口(定期审计)
如您能提供具体信息(如:Spring Boot 版本、预计 QPS、是否含数据库、是否用 Docker),我可为您定制更精准的配置方案。
CLOUD云枢