Ruoyi-vue项目上线生产环境,CentOS或Ubuntu最低系统配置推荐是多少?

在将 RuoYi-Vue(前后端分离版) 部署到生产环境时,其系统资源需求取决于整体架构(通常为:前端 Nginx + 后端 Spring Boot + 数据库 MySQL/Oracle + Redis 可选),而非单个组件。以下是针对 CentOS 7/8 或 Ubuntu 20.04/22.04 LTS 的最低推荐生产配置(非开发/测试,而是可稳定支撑中小规模业务的轻量级生产环境):


✅ 最低推荐生产配置(单机部署,日活 < 1,000,低并发场景)

组件 推荐最低配置 说明
CPU 2 核(vCPU) Spring Boot 默认启动占用约 1~1.5 核;Nginx + MySQL + Redis 共享剩余资源;低于 2 核易出现响应延迟或 GC 压力
内存 4 GB RAM(强烈建议 ≥6 GB) ⚠️ 关键项!
• Spring Boot(JVM)建议 -Xms1g -Xmx2g(避免频繁 Full GC)
• MySQL(InnoDB)需至少 1G 缓冲池
• Nginx + Redis 各需 200–500MB
• 系统预留 ≥500MB
→ 4GB 是理论下限,实际建议 6GB 起步以保障稳定性
磁盘 20 GB SSD(系统盘)+ 独立数据盘(MySQL/Redis) • 系统+应用约 5–8GB
• 日志、数据库增长需预留空间(建议 MySQL 数据库存放于独立挂载盘)
• 必须使用 SSD(HDD 在高并发 I/O 下性能瓶颈明显)
操作系统 • CentOS 7.6+(推荐 7.9 或 8.5+)
• Ubuntu 20.04 LTS / 22.04 LTS(更推荐 Ubuntu 22.04)
• 需支持 Java 11/17(RuoYi-Vue 3.x 推荐 JDK 17)
• Ubuntu 对容器化、Java 生态兼容性及安全更新更友好
• CentOS Stream 不建议用于生产(非稳定版);若用 CentOS,请选 AlmaLinux 8/9 或 Rocky Linux 8/9(CentOS 替代品)

🔧 补充关键要求

  • Java 环境:

    • RuoYi-Vue 3.x(主流分支)要求 JDK 11 或 JDK 17(LTS) —— 不支持 JDK 8(旧版 RuoYi-Vue 2.x 支持 JDK 8,但已停止维护)。
    • 推荐安装 OpenJDK 17(如 temurin-17-jdk 或 amazon-corretto-17)。
  • 数据库:

    • MySQL ≥ 5.7(推荐 8.0.32+,支持更好性能与安全特性)
    • 若用 PostgreSQL,≥ 12
    • 禁止使用 SQLite / H2 等嵌入式数据库用于生产
  • 其他中间件(按需):

    • Redis(缓存/登录校验):≥ 1GB 内存(独立部署更佳)
    • Nginx:轻量,内存占用 < 100MB,但需配置反向X_X、HTTPS、静态资源服务
  • 安全与运维:

    • 关闭 SELinux(CentOS)或 AppArmor(Ubuntu)或正确配置策略(否则可能拦截 Java/Nginx 访问端口/文件)
    • 使用 systemd 托管 Spring Boot(spring-boot-starter-systemd)和 Nginx,确保开机自启与健康恢复
    • 必须配置防火墙(firewalld / ufw)仅开放必要端口(80/443/8080/3306等)

🚫 不推荐的配置(易导致生产事故)

配置 风险说明
1核1GB(如阿里云“共享型”实例) JVM 内存不足 → 频繁 GC 卡顿;MySQL 内存不足 → 查询缓慢甚至 OOM;无冗余资源应对突发流量
HDD 磁盘 MySQL 写入/查询延迟高,登录/权限校验明显卡顿(尤其含大量字典/菜单数据时)
CentOS 6 / Ubuntu 18.04(EOL) 已停止安全更新,存在高危漏洞(如 Log4j 衍生风险无法及时修复);缺少新内核特性(如 eBPF 监控)
未配置 JVM 参数(仅用默认) Spring Boot 默认堆内存仅 256MB,生产环境必崩

✅ 最佳实践建议(小团队低成本生产)

场景 推荐方案
入门生产(验证业务) Ubuntu 22.04 + 2C4G(云服务器) + MySQL 8.0(本地部署) + Redis(Docker) + Nginx + Let’s Encrypt HTTPS
中等负载(日活 3k~5k) 推荐拆分部署:
• 应用服务器:2C4G(仅跑 RuoYi 后端 + Nginx)
• 数据库服务器:2C8G(MySQL 主从 + 专用磁盘)
• 缓存服务器:1C2G(Redis)
容器化(进阶) Docker + Docker Compose(或 Kubernetes)部署,镜像基于 openjdk:17-jre-slim + nginx:alpine,资源隔离更优

🔍 验证方式(上线前必做)

# 检查可用内存(排除缓存后真实可用)
free -h && echo "Available:" $(awk '/MemAvailable/{print $2}' /proc/meminfo | awk '{printf "%.1f GBn", $1/1024/1024}')

# 检查 Java 版本与参数
java -version
ps -ef | grep java | grep -v grep  # 确认 -Xms/-Xmx 已生效

# 检查 MySQL 连接与缓冲池
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; SHOW STATUS LIKE 'Threads_connected';"

✅ 总结一句话推荐:

生产环境起步建议:Ubuntu 22.04 LTS 或 Rocky Linux 8.9 + 2核 CPU + 6GB 内存 + 20GB SSD系统盘 + MySQL 8.0 独立部署。低于此配置不建议承载真实用户,仅可用于学习或极低频内部管理。

如需我帮你生成:

  • ✅ systemd 服务脚本(Spring Boot)
  • ✅ Nginx 完整反向X_X配置(含 HTTPS、gzip、缓存头)
  • ✅ MySQL 生产级 my.cnf 优化模板(适配 4G/6G 内存)
  • ✅ Docker Compose 部署清单(RuoYi-Vue 3.x 全栈)
    欢迎随时提出 👇
未经允许不得转载:CLOUD技术博 » Ruoyi-vue项目上线生产环境,CentOS或Ubuntu最低系统配置推荐是多少?