在将 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技术博