在使用 Alibaba Cloud Linux 3 部署 Spring Boot 项目时,虽然该系统基于 CentOS/RHEL 生态,兼容性较好,但仍有一些关键点需要注意,以确保部署顺利、稳定和安全。以下是主要注意事项:
1. 系统环境准备
✅ 安装 Java 运行环境
Spring Boot 项目依赖 JVM,需确认已安装合适的 JDK 版本(如 OpenJDK 8/11/17)。
# 检查是否已安装 Java
java -version
# 若未安装,推荐使用 dnf 安装 OpenJDK(Alibaba Cloud Linux 3 使用 dnf)
sudo dnf install java-17-openjdk-devel -y
⚠️ 注意:建议使用长期支持版本(LTS),如 Java 11 或 17。
✅ 设置 JAVA_HOME 环境变量
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
可将上述内容写入 /etc/profile 或用户 ~/.bashrc 文件中,并执行 source 加载。
2. 防火墙与端口配置
Spring Boot 默认运行在 8080 端口,需开放对应端口。
# 开放 8080 端口(或其他自定义端口)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
🔐 建议生产环境中使用 Nginx 反向X_X,并通过 HTTPS 暴露服务,避免直接暴露应用端口。
3. 权限与用户安全
-
不要以 root 用户运行 Spring Boot 应用,应创建专用用户:
sudo useradd -m -s /bin/bash springboot sudo passwd springboot -
将应用文件归属给该用户:
sudo chown -R springboot:springboot /path/to/your/app.jar
4. 系统资源限制
检查并调整系统对进程的资源限制(特别是大并发项目):
ulimit -n # 查看最大文件描述符
ulimit -u # 查看最大进程数
可通过修改 /etc/security/limits.conf 提升限制:
springboot soft nofile 65536
springboot hard nofile 65536
⚠️ 修改后需重新登录生效。
5. 使用 systemd 托管服务(推荐方式)
创建 systemd 服务文件,实现开机自启、日志管理、自动重启等。
# /etc/systemd/system/myapp.service
[Unit]
Description=My Spring Boot Application
After=network.target
[Service]
Type=simple
User=springboot
ExecStart=/usr/bin/java -jar /home/springboot/app.jar
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
Environment=SPRING_PROFILES_ACTIVE=prod
WorkingDirectory=/home/springboot
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
查看日志:
journalctl -u myapp -f
6. 日志管理
- Spring Boot 日志默认输出到控制台,systemd 会自动捕获。
- 建议配置日志轮转(logrotate)或使用 ELK/SLS 等集中式日志系统。
- 可通过
logging.file.name或logging.file.path指定日志文件路径。
7. 性能调优与监控
- JVM 参数优化:根据内存情况设置堆大小。
ExecStart=/usr/bin/java -Xms512m -Xmx2g -jar /home/springboot/app.jar - 启用 Actuator 监控端点(生产环境注意安全,关闭敏感接口或加认证)。
- 使用 Alibaba Cloud 的 ARMS、CloudMonitor 等工具进行应用性能监控。
8. 网络与 DNS 配置
Alibaba Cloud Linux 3 默认集成阿里云优化的内核和网络栈,但需注意:
- 确保 ECS 实例的安全组规则允许访问所需端口。
- 若访问 RDS、OSS 等云服务,建议使用内网地址,降低延迟和费用。
- 检查
/etc/resolv.conf是否有正确的 DNS 配置(通常自动配置)。
9. 时间同步与时区设置
确保系统时间准确,避免证书验证、定时任务等问题。
# 检查时间同步状态
timedatectl status
# 设置时区(如上海)
sudo timedatectl set-timezone Asia/Shanghai
10. 安全加固建议
- 定期更新系统补丁:
sudo dnf update -y - 关闭不必要的服务。
- 使用 SSH 密钥登录,禁用密码登录(
/etc/ssh/sshd_config)。 - 配置 fail2ban 防止暴力破解。
11. 与阿里云生态集成(可选)
- 使用 Secrets Manager 管理数据库密码等敏感信息。
- 使用 OSS 存储上传文件。
- 使用 SLB + ECS 实现负载均衡。
- 结合 容器服务(ACK) 或 函数计算(FC) 实现更灵活部署。
总结
| 类别 | 推荐做法 |
|---|---|
| Java 环境 | 使用 OpenJDK 11/17,设置 JAVA_HOME |
| 运行方式 | 使用 systemd 托管服务 |
| 安全 | 创建专用用户,不使用 root |
| 网络 | 开放端口,配置安全组 |
| 日志 | 使用 journalctl 或重定向到文件 |
| 性能 | 合理设置 JVM 参数,监控资源 |
| 维护 | 定期更新系统,备份应用 |
通过以上配置,可以在 Alibaba Cloud Linux 3 上稳定、高效地运行 Spring Boot 应用。如有进一步需求(如 Docker 部署、HTTPS 配置等),也可继续扩展。
轻量云Cloud