在使用 Alibaba Cloud Linux 3 部署 Spring Boot 项目时,虽然其基于 RHEL/CentOS 的兼容性使得大多数 Java 应用可以顺利运行,但仍有一些需要注意的问题和最佳实践。以下是关键注意事项:
1. 系统环境准备
✅ 确保系统更新
sudo yum update -y
✅ 安装必要工具
sudo yum install -y vim wget curl unzip tar net-tools
2. Java 运行环境(JDK)
Spring Boot 是基于 Java 的,必须正确安装 JDK。
推荐版本:
- OpenJDK 8 / 11 / 17(根据你的 Spring Boot 版本选择)
- Alibaba Dragonwell(阿里优化的 OpenJDK 发行版,推荐用于生产)
安装 OpenJDK 示例(以 OpenJDK 11 为例):
sudo yum install -y java-11-openjdk-devel
或使用 Alibaba Dragonwell(推荐):
从 Dragonwell 官网 下载对应版本并解压:
wget https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.10-ga/Alibaba_Dragonwell_17.0.10_Linux_x64_bin.tar.gz
tar -xzf Alibaba_Dragonwell_17.0.10_Linux_x64_bin.tar.gz -C /opt/
配置环境变量:
export JAVA_HOME=/opt/alibaba-dragonwell-17.0.10-jre
export PATH=$JAVA_HOME/bin:$PATH
添加到 /etc/profile 或用户 ~/.bashrc 中永久生效。
验证:
java -version
3. Spring Boot 打包方式
确保项目打包为 可执行 JAR 文件(包含内嵌 Tomcat):
<packaging>jar</packaging>
使用 Maven 构建:
mvn clean package
上传 JAR 到服务器(如:app.jar)
4. 启动与进程管理
❌ 不推荐直接前台运行:
java -jar app.jar
✅ 推荐方式:
方式一:后台运行 + nohup
nohup java -jar app.jar > app.log 2>&1 &
方式二:使用 systemd(推荐,适合生产环境)
创建服务文件:
sudo vim /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Spring Boot Application
After=syslog.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /path/to/app.jar
WorkingDirectory=/path/to/
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp
5. 防火墙与安全组
Alibaba Cloud Linux 3 默认使用 firewalld
开放端口(如 8080):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
⚠️ 同时确保 ECS 安全组规则 已放行相应端口(控制台设置)。
6. 性能调优建议
JVM 参数优化(示例):
java -Xms512m -Xmx1024m -XX:+UseG1GC -jar app.jar
结合 Dragonwell 可启用额外优化(如弹性堆内存、ZGC 支持等)。
系统资源监控:
top, htop, free -h, df -h
7. 日志管理
- 将日志重定向到文件(避免 nohup.out 过大)
- 使用 logrotate 管理日志轮转
- 考虑接入 SLS(阿里云日志服务)进行集中管理
8. 依赖与权限问题
- 确保应用有读写所需目录的权限(如上传文件路径)
- 若使用 MySQL/Redis 等外部服务,确保网络可达
- 避免使用 root 用户运行应用(可创建专用用户)
sudo useradd -r -s /bin/false myappuser
sudo chown -R myappuser:myappuser /path/to/app.jar
修改 systemd 服务中的 User=myappuser
9. 时间与时区设置
Alibaba Cloud Linux 3 默认时区可能不是 Asia/Shanghai,需确认:
timedatectl set-timezone Asia/Shanghai
timedatectl status
否则可能导致日志时间偏差。
10. 其他注意事项
| 项目 | 建议 |
|---|---|
| NTP 时间同步 | 启用 chronyd:sudo systemctl enable chronyd |
| SELinux | Alibaba Cloud Linux 3 默认关闭,无需处理 |
| DNS 解析 | 检查 /etc/resolv.conf 是否正常 |
| HTTPS | 如需对外提供 HTTPS,建议使用 Nginx 反向X_X + SSL 证书 |
总结:部署 checklist
✅ 安装合适 JDK(推荐 Dragonwell)
✅ 打包为可执行 JAR
✅ 使用 systemd 管理进程
✅ 开放防火墙和安全组端口
✅ 设置正确的时区
✅ 配置日志输出与轮转
✅ 使用非 root 用户运行
✅ 监控资源使用情况
通过以上步骤,你可以在 Alibaba Cloud Linux 3 上稳定、高效地运行 Spring Boot 应用。如需更高可用性,可结合 SLB、AS、云数据库等阿里云服务构建完整架构。
云计算导航