使用 Alibaba Cloud Linux 3 部署Spring Boot项目需要注意哪些问题?

在使用 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、云数据库等阿里云服务构建完整架构。

未经允许不得转载:云计算导航 » 使用 Alibaba Cloud Linux 3 部署Spring Boot项目需要注意哪些问题?