在使用 Alibaba Cloud Linux 3(基于 RHEL/CentOS 的优化发行版)部署 Spring Boot 项目时,虽然整体流程与通用 Linux 系统类似,但为了确保稳定、安全和高效运行,需要注意以下几个关键问题:
一、系统环境准备
-
Java 版本兼容性
- 确认 Spring Boot 应用所需的 Java 版本(如 OpenJDK 8/11/17)。
- Alibaba Cloud Linux 3 默认可能不预装 JDK,需手动安装:
sudo yum install -y java-1.8.0-openjdk-devel # 或使用 dnf(推荐) sudo dnf install -y java-17-openjdk-devel - 建议使用 OpenJDK 官方版本或 Alibaba Dragonwell(阿里定制 JDK,性能优化):
Dragonwell 下载地址
-
设置 JAVA_HOME 环境变量
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH添加到
/etc/profile或用户~/.bashrc中。
二、防火墙与网络配置
-
开放应用端口
- Spring Boot 默认使用
8080端口,需在系统防火墙中放行:sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload - 若使用云服务器,还需在 阿里云安全组 中开放对应端口。
- Spring Boot 默认使用
-
SELinux 配置(可选)
- Alibaba Cloud Linux 3 默认启用 SELinux,若遇到权限问题可临时禁用测试:
sudo setenforce 0 # 临时关闭 - 生产环境建议配置 SELinux 规则而非直接关闭。
- Alibaba Cloud Linux 3 默认启用 SELinux,若遇到权限问题可临时禁用测试:
三、应用部署方式
-
选择部署方式
- 推荐使用 Jar 包运行(内嵌 Tomcat):
nohup java -jar your-app.jar > app.log 2>&1 & -
或使用 systemd 管理服务(推荐生产环境):
创建服务文件
/etc/systemd/system/myapp.service:[Unit] Description=My Spring Boot Application After=syslog.target [Service] User=myuser ExecStart=/usr/bin/java -jar /opt/app/your-app.jar SuccessExitStatus=143 Restart=always StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reexec sudo systemctl enable myapp sudo systemctl start myapp
- 推荐使用 Jar 包运行(内嵌 Tomcat):
-
文件权限管理
- 确保运行用户对 Jar 文件和日志目录有读写权限。
- 不建议以 root 用户运行应用,创建专用用户更安全。
四、资源与性能调优
-
JVM 参数优化
- 根据服务器内存设置合理的堆大小:
java -Xms512m -Xmx2g -jar app.jar - 可结合 Alibaba Dragonwell 的 GC 优化特性。
- 根据服务器内存设置合理的堆大小:
-
系统资源限制
- 检查
ulimit设置,避免文件句柄不足:ulimit -n 65536 - 修改
/etc/security/limits.conf永久生效。
- 检查
五、日志与监控
-
日志输出与轮转
- 使用
logback-spring.xml或log4j2配置日志路径和滚动策略。 - 结合
logrotate管理日志文件:/opt/app/logs/*.log { daily rotate 7 compress missingok notifempty }
- 使用
-
集成监控工具
- 使用 Prometheus + Grafana 监控 JVM 和应用指标。
- 阿里云 ARMS(应用实时监控服务)也可用于无侵入监控。
六、安全性考虑
-
最小化系统暴露
- 关闭不必要的服务和端口。
- 使用非默认端口运行应用(如 8081 而非 8080)。
-
定期更新系统
sudo dnf update -yAlibaba Cloud Linux 3 提供长期支持和安全补丁。
-
应用配置脱敏
- 敏感信息(数据库密码等)不要硬编码,使用环境变量或配置中心(如 Nacos)。
七、其他注意事项
- 时间同步:确保系统时间准确,避免证书或日志问题:
sudo chronyd -q 'server ntp.aliyun.com iburst' - DNS 配置:检查
/etc/resolv.conf是否指向可靠 DNS(如阿里云 223.5.5.5)。 - 磁盘空间监控:Spring Boot 日志可能快速增长,定期清理或归档。
总结
| 注意事项 | 建议做法 |
|---|---|
| Java 环境 | 使用 OpenJDK 或 Alibaba Dragonwell |
| 部署方式 | systemd 管理服务 |
| 网络与防火墙 | 开放端口 + 安全组配置 |
| 安全 | 非 root 用户运行、关闭 SELinux 或配置规则 |
| 日志 | 配置轮转,避免磁盘占满 |
| 监控 | 集成 Prometheus 或 ARMS |
通过以上配置,可以在 Alibaba Cloud Linux 3 上稳定、高效地运行 Spring Boot 应用。建议结合阿里云 ECS、SLB、云监控等服务构建完整生产环境。
云知道CLOUD