在使用 Alibaba Cloud Linux 3 部署 Spring Boot 项目时,虽然该系统基于 CentOS/RHEL 生态且兼容性良好,但仍有一些关键点需要注意,以确保项目稳定、安全和高效运行。以下是部署过程中需要重点关注的问题及建议:
1. 系统环境准备
✅ 安装 Java 环境
- Spring Boot 通常依赖 Java(JDK 8/11/17+),需确认已正确安装。
-
推荐使用 OpenJDK 或 Alibaba Dragonwell(阿里优化的 OpenJDK 发行版):
# 安装 OpenJDK 17 sudo dnf install -y java-17-openjdk-devel # 或使用 Dragonwell(推荐用于性能敏感场景) # 下载并配置 Dragonwell(从官网获取最新版本) - 验证安装:
java -version javac -version
✅ 设置 JAVA_HOME 环境变量
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
建议写入 /etc/profile 或用户 .bashrc。
2. 防火墙与端口配置
- 默认 Spring Boot 使用
8080端口,需开放防火墙:sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload - 若使用云服务器,请同步在 阿里云安全组规则 中放行对应端口。
3. 系统资源限制调优
Alibaba Cloud Linux 3 对资源管理较严格,注意以下几点:
✅ 文件句柄数限制
Spring Boot 可能打开大量连接(如数据库、HTTP 连接池),需提高限制:
# 编辑 limits.conf
sudo vi /etc/security/limits.conf
添加:
* soft nofile 65536
* hard nofile 65536
✅ 用户进程数限制
避免因线程过多导致“unable to create new native thread”错误:
* soft nproc 16384
* hard nproc 16384
⚠️ 注意:修改后需重新登录生效,或重启服务。
4. 服务化部署建议(使用 systemd)
推荐将 Spring Boot 应用作为系统服务运行,便于管理。
创建 systemd 服务文件
sudo vi /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Spring Boot Application
After=network.target
[Service]
Type=simple
User=myuser
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
Environment=SPRING_PROFILES_ACTIVE=prod
Environment=JAVA_OPTS="-Xms512m -Xmx2g"
[Install]
WantedBy=multi-user.target
启用并启动服务
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp
5. 日志管理
- Spring Boot 默认输出日志到控制台,结合
systemd可使用journalctl查看:journalctl -u myapp.service -f - 建议配置日志轮转(logrotate)或将日志输出到文件(通过
logging.file.name配置)。
6. 时间与时区设置
- Alibaba Cloud Linux 3 默认时区可能为 UTC,而 Spring Boot 应用常需东八区:
sudo timedatectl set-timezone Asia/Shanghai - 在应用中也可显式设置:
@PostConstruct void started() { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); }
7. 网络与 DNS 配置
- 某些镜像默认 DNS 可能不稳定,可手动设置:
sudo vi /etc/resolv.conf添加:
nameserver 223.5.5.5 # 阿里公共 DNS nameserver 223.6.6.6
8. 安全加固建议
- 禁用不必要的服务。
- 使用非 root 用户运行应用。
- 定期更新系统:
sudo dnf update -y - 启用 Alibaba Cloud 的 云安全中心 监控入侵、漏洞等。
9. 性能优化(可选)
- Alibaba Cloud Linux 3 针对云环境做了内核优化,可结合 Dragonwell JVM 提升性能。
- 合理设置 JVM 参数(堆大小、GC 策略等)。
- 考虑启用 cgroup v2 资源隔离(适用于容器化部署)。
10. 监控与运维
- 使用阿里云 CloudMonitor 监控 ECS 实例 CPU、内存、网络。
- 结合 Spring Boot Actuator + Prometheus + Grafana 实现应用级监控。
- 日志可通过 SLS(日志服务)采集集中分析。
总结:关键检查清单
| 项目 | 是否完成 |
|---|---|
| 安装 JDK 并配置 JAVA_HOME | ✅ |
| 开放防火墙与安全组端口 | ✅ |
| 调整系统资源限制(nofile, nproc) | ✅ |
| 使用 systemd 托管服务 | ✅ |
| 设置正确时区 | ✅ |
| 使用非 root 用户运行应用 | ✅ |
| 配置日志输出与轮转 | ✅ |
| 定期系统更新与安全扫描 | ✅ |
通过以上配置,可以确保在 Alibaba Cloud Linux 3 上稳定、安全地运行 Spring Boot 应用。如有进一步需求(如 Docker 容器化、Nginx 反向X_X等),可继续扩展架构。
秒懂云