在将 RuoYi-Vue(前后端分离版)部署到生产环境时,其系统资源需求主要取决于 后端(Spring Boot + MySQL/Oracle + Redis 可选) 和 前端(静态资源 Nginx 托管) 的综合负载。以下是针对 CentOS(推荐 7/8 或 Rocky/AlmaLinux 8+)或 Ubuntu(推荐 20.04 LTS / 22.04 LTS) 的最低推荐配置,兼顾稳定性、安全性和可维护性:
✅ 最低推荐生产环境配置(轻量级业务场景)
| 组件 | 推荐最低配置 | 说明 |
|---|---|---|
| CPU | ≥ 2 核(vCPU) | Spring Boot 启动和并发处理需基本多线程支持;单核易成为瓶颈(尤其启用定时任务、文件导出、日志审计等) |
| 内存(RAM) | ≥ 4 GB(强烈建议 ≥ 6 GB) | • RuoYi 后端(Spring Boot)默认堆内存 -Xms512m -Xmx1024m,但实际运行需额外元空间、直接内存、GC开销等• MySQL(InnoDB)需预留至少 1–1.5 GB 缓存 • Nginx + Redis(若启用)各需 ~100–300 MB • ⚠️ 若仅配 2 GB:极易因 OOM 被 Linux OOM Killer 杀掉 Java 进程,不推荐用于生产 |
| 磁盘 | ≥ 40 GB SSD(建议 NVMe) | • 系统 + JDK + MySQL 数据目录 + 日志(RuoYi 默认 daily rolling,需定期清理) • 建议 /var/log/ruoyi/、/var/lib/mysql/ 单独挂载或使用 logrotate |
| 操作系统 | • CentOS 7.9+ / CentOS 8+(已 EOL,不推荐新部署) • ✅ Rocky Linux 8.10+ 或 AlmaLinux 8.10+(免费替代 CentOS) • ✅ Ubuntu 20.04 LTS / 22.04 LTS(长期支持,生态友好) |
• 避免使用 CentOS 6/7 早期版本(OpenSSL、glibc 安全漏洞多) • Ubuntu 对 Java/Node/Nginx 包管理更便捷( apt + 官方 PPA) |
🧩 关键组件版本兼容性要求(必须满足)
| 组件 | 最低兼容版本 | 备注 |
|---|---|---|
| JDK | JDK 8u202+ 或 JDK 11.0.12+(推荐 JDK 17 LTS) | RuoYi-vue 3.x+ 官方已适配 JDK 17;JDK 8 仍可用但已停止免费更新(Oracle),建议用 Eclipse Temurin 或 Amazon Corretto |
| MySQL | 5.7.20+ 或 8.0.16+(推荐 8.0.33+) | 注意:MySQL 8.0 默认 caching_sha2_password 认证插件,需在 application-druid.yml 中配置 driver-class-name: com.mysql.cj.jdbc.Driver 并确保连接 URL 含 &serverTimezone=Asia/Shanghai |
| Redis | (可选)≥ 5.0(若启用缓存/在线用户/验证码) | 非必需,但生产建议启用以提升性能与会话管理 |
| Nginx | ≥ 1.16(Ubuntu 20.04+/CentOS 8+ 自带) | 用于反向X_X(后端)+ 静态托管(前端 dist)+ HTTPS 终止 |
🚫 绝对避免的配置(常见踩坑)
- ❌ 2 GB 内存 + CentOS 7.2:MySQL + Java + Nginx 启动后剩余内存 < 200MB,频繁 swap,服务假死。
- ❌ 使用
systemd管理 Java 进程但未配置MemoryLimit和Restart=always→ 进程崩溃后不自愈。 - ❌ 前端
nginx.conf未配置try_files $uri $uri/ /index.html;→ Vue Router history 模式 404。 - ❌ MySQL 未调优:
innodb_buffer_pool_size未设为物理内存 50%~70%,导致磁盘 I/O 爆高。
✅ 生产增强建议(低成本提效)
| 类别 | 推荐操作 |
|---|---|
| 安全加固 | • 关闭非必要端口(仅开放 80/443/22) • 使用 fail2ban 防 SSH 暴力破解• MySQL 仅监听 127.0.0.1,禁用 root 远程登录 |
| 日志管理 | • 配置 logback-spring.xml 输出到 /var/log/ruoyi/,按日切割 + 保留 30 天• 使用 journalctl -u ruoyi 查看 systemd 日志(若用 systemd) |
| 备份策略 | • MySQL:每日 mysqldump + cron + 上传至 OSS/S3• 前端静态资源:Git Tag + 构建产物归档 |
| 监控告警 | • 基础:htop/nmon + netstat -tuln• 进阶:Prometheus + Grafana(监控 JVM、MySQL、Nginx) |
📌 总结:一句话推荐
生产环境起步配置:Rocky Linux 8.10 / Ubuntu 22.04 LTS + 2核4GB内存 + 40GB SSD + JDK 17 + MySQL 8.0 + Nginx 1.18+
—— 此配置可稳定支撑 50–100 并发用户(典型OA/后台管理系统场景),且留有余量应对流量波动与日志增长。
如需进一步优化(如高并发、集群部署、Docker 化),可提供具体业务规模(预估 DAU/TPS/数据量),我可为您定制架构方案。
是否需要我提供:
- ✅
systemd服务文件模板(含内存限制 & 自启) - ✅ Nginx 反向X_X + 前端 history 模式完整配置
- ✅ MySQL 生产级
my.cnf调优参数 - ✅ Ubuntu/CentOS 一键部署脚本(Shell)
欢迎随时提出 👍
CLOUD云计算