速卖通素材
努力

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

服务器

在使用 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.namelogging.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 » 使用 Alibaba Cloud Linux 3 部署Spring Boot项目需要注意哪些问题?