在将 RuoYi-Vue(前后端分离版) 部署到生产环境时,其系统资源需求取决于实际业务规模、并发量、数据量及是否启用缓存/消息队列等扩展组件。但针对标准单机部署(前端 Nginx + 后端 Spring Boot + MySQL + Redis) 的最小可行生产环境,官方虽未严格定义,结合 Spring Boot、Vue、MySQL 8+ 和 Redis 的轻量级运行要求,以下是经过实践验证的最低推荐配置(适用于中小型企业内部管理系统、低并发(<200 并发用户)、日活 <1000 的场景):
✅ 最低推荐系统配置(生产环境)
| 组件 | 推荐最低配置 | 说明 |
|---|---|---|
| 操作系统 | ✅ CentOS 7.6+(已 EOL,建议 CentOS Stream 8/9 或 Rocky Linux 8/9) ✅ Ubuntu 20.04 LTS 或 22.04 LTS(强烈推荐) |
Ubuntu 22.04 LTS 对 OpenJDK 17/21、Node.js 18+、MySQL 8.0 支持更完善,安全更新及时;CentOS 7 已于 2024-06-30 停止维护,不建议用于新生产环境。 |
| CPU | ⚙️ 2 核(vCPU) | Spring Boot 默认启动占用约 1~1.5 核;Nginx + MySQL + Redis 共享剩余资源。低于 2 核易出现响应延迟。 |
| 内存(RAM) | 🧠 4 GB(必须) ⚠️ 3 GB 极限临界值(不推荐) |
分配示例: • Java(Spring Boot): -Xms1g -Xmx1.5g(推荐)• MySQL:≥512MB(InnoDB buffer pool) • Redis:≥256MB • Nginx + OS:≥512MB → 总和 ≥3.5GB,故 4GB 是安全底线。 |
| 磁盘 | 💾 40 GB SSD(建议 NVMe) | • 系统 + 运行时:10GB • MySQL 数据库(含日志、备份):≥20GB(视数据增长) • 日志(RuoYi 默认 logback,需定期轮转):≥5GB • 前端静态资源 + 备份:≥5GB → HDD 性能不足,SSD 是硬性要求。 |
| Java 版本 | ☕ OpenJDK 17 LTS(推荐)或 21 LTS | RuoYi-Vue 3.x(最新版)基于 Spring Boot 2.7+/3.x,不支持 JDK 8;JDK 17 是当前最稳定、兼容性最佳的选择(LTS)。 |
| Node.js(仅构建前端用) | 🌐 Node.js 18.x LTS(构建阶段) | 生产环境无需运行 Node.js(前端构建后为静态文件,由 Nginx 托管),仅构建服务器需安装。 |
| 数据库 | 🗄️ MySQL 8.0.26+ 或 MariaDB 10.6+ | RuoYi 官方适配 MySQL 8,注意开启 lower_case_table_names=1(Linux 下大小写敏感问题)。 |
| Redis | 🧵 Redis 6.2+(可选但强烈推荐) | 用于验证码、在线用户、定时任务锁等;若不用 Redis,需注释/禁用相关模块(不推荐)。 |
⚠️ 关键注意事项(避坑指南)
-
不要用 CentOS 7 部署新生产环境
→ 已停止维护(2024-06-30),无安全补丁,且默认 OpenSSL、glibc 版本过旧,可能与新版 JDK/MySQL 不兼容。 -
内存是最大瓶颈
→ 若仅 2GB 内存,Java 应用极易 OOM(尤其开启 Actuator、Druid 监控、大量日志时)。4GB 是生产可用底线,8GB 更稳妥。 -
Swap 分区建议关闭(或设为 0)
→ Spring Boot 应用对 swap 敏感,可能导致 GC 延迟飙升。使用swapoff -a并注释/etc/fstab中 swap 行。 -
防火墙与 SELinux
→ Ubuntu:ufw enable(开放 80/443/8080)
→ Rocky/AlmaLinux:firewalld开放端口,SELinux 建议设为permissive或disabled(避免权限拦截,如/var/lib/mysql访问异常)。 -
生产环境必须配置反向X_X(Nginx)
→ 前端静态资源走 Nginx(gzip、缓存、HTTPS),后端 API X_X至http://localhost:8080,禁止直接暴露 Spring Boot 内置 Tomcat 端口。 -
日志与监控
→ 启用logback-spring.xml的滚动策略(按天/大小归档)
→ 建议集成 Prometheus + Grafana(通过 Spring Boot Actuator)监控 JVM、HTTP QPS、DB 连接池。
📈 扩展建议(根据业务增长升级)
| 场景 | 推荐升级配置 |
|---|---|
| 中等并发(500~1000 用户) | 4核 / 8GB RAM / 100GB SSD |
| 高可用生产(主从+读写分离) | MySQL 主从 + Redis 哨兵 + Nginx 负载均衡(多节点) |
| 微服务化(RuoYi Cloud) | 至少 8GB RAM + Kubernetes 集群(非单机) |
✅ 快速验证命令(部署前检查)
# 检查系统版本(Ubuntu 示例)
lsb_release -a
# 检查内存 & Swap
free -h && swapon --show
# 检查可用磁盘空间
df -h / && df -h /var/lib/mysql
# 检查 Java 版本(需 JDK 17+)
java -version
# 检查 MySQL/Redis 是否可达(本地)
mysql --version && redis-cli --version
如需,我可为你提供:
- ✅ Ubuntu 22.04 一键部署脚本(含 JDK17 + MySQL8 + Redis7 + Nginx + RuoYi 后端/前端)
- ✅ Nginx 生产配置模板(HTTPS + Gzip + 缓存 + 反向X_X)
- ✅ Spring Boot JVM 参数优化建议(G1GC + Metaspace)
- ✅ RuoYi 生产环境
application-prod.yml安全配置清单
欢迎随时告知你的具体部署场景(如是否用 Docker?是否需要 HTTPS?是否已有数据库?),我可以为你定制方案 👇
CLOUD云枢