若依(RuoYi)Vue 前后端分离架构的生产环境部署,最低配置取决于具体的业务场景、并发量以及是否包含数据库。
对于纯开发测试或极低流量(如个人项目、内部演示),理论上可以运行在极低的配置上;但对于正式生产环境,为了保证系统稳定性、避免内存溢出(OOM)以及应对突发流量,建议遵循以下分级标准:
1. 极限压缩版(仅限个人学习/非关键业务演示)
如果你只是用来跑通流程,且预计几乎没有外部并发访问,可以将所有服务(Nginx + Java 后端 + MySQL)部署在同一台服务器上。
- CPU: 1 核 (1 Core)
- 内存: 2 GB RAM
- 硬盘: 40 GB SSD
- 操作系统: CentOS 7.9 / Ubuntu 20.04+
- 风险提示:
- Java 后端:默认 JVM 堆内存可能占用过多,导致服务器卡死。必须手动调整
JAVA_OPTS(例如-Xms512m -Xmx512m)。 - MySQL:默认配置会吃掉大量内存,需大幅调优
innodb_buffer_pool_size。 - Nginx:处理静态资源没问题,但一旦有少量并发请求,单核 CPU 容易打满。
- 结论:不推荐用于真实生产环境,仅适合本地验证。
- Java 后端:默认 JVM 堆内存可能占用过多,导致服务器卡死。必须手动调整
2. 官方推荐起步版(小型企业/内部管理系统)
这是大多数中小型公司使用若依框架的最低安全线。此时建议将 Nginx(前端)、Java 后端、MySQL 部署在同一台服务器,或者将数据库独立出来。
- CPU: 2 核 (2 Cores)
- 内存: 4 GB RAM
- 硬盘: 60 GB SSD (建议数据盘与系统盘分离)
- 网络带宽: 3 Mbps – 5 Mbps (视图片/文件上传需求而定)
- 理由:
- JVM:分配 2GB 给 Java 堆内存 (
-Xmx2g),剩余空间供操作系统和 Nginx 使用,避免 OOM。 - MySQL:分配 1GB 左右给缓冲池,保证查询效率。
- 并发能力:2 核 CPU 能支撑约 50-100 人同时在线操作,或每秒 10-20 个简单请求。
- JVM:分配 2GB 给 Java 堆内存 (
3. 稳定生产版(对外服务/高可用需求)
如果你的系统需要对外开放,或者有明确的 SLA 要求(不能宕机),强烈建议采用微服务拆分或容器化部署,并将组件物理隔离。
- 应用服务器 (Java + Nginx):
- CPU: 4 核
- 内存: 8 GB
- 数据库服务器 (MySQL):
- CPU: 2 核
- 内存: 4 GB
- 硬盘: 100 GB+ SSD
- Redis (缓存):
- 通常可与应用服务器共用,或单独 2GB 内存实例。
- 优势:即使数据库负载高,也不会拖垮后端接口;Java 进程有足够的内存空间运行 GC,减少卡顿。
关键优化建议(无论配置多低)
若依框架基于 Spring Boot,对内存比较敏感。在生产环境部署前,必须进行以下配置优化,否则再大的配置也可能崩溃:
-
限制 JVM 内存:
在启动脚本或 Docker 环境变量中明确设置最大堆内存,不要使用默认值(默认通常是物理内存的 1/4,在 2GB 机器上会直接占满)。JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC" # 注意:根据实际内存大小调整,留足 OS 和 MySQL 的空间 -
Nginx 优化:
开启 Gzip 压缩,配置浏览器缓存策略,减少后端压力。 -
数据库调优:
修改my.ini(Windows) 或my.cnf(Linux),设置innodb_buffer_pool_size。如果是 4GB 内存的机器,设置为 1.5GB~2GB 即可。 -
Docker 部署:
如果使用 Docker Compose 部署,务必为每个容器设置mem_limit和cpus限制,防止某个容器耗尽宿主机资源。
总结结论
| 场景 | 最低推荐配置 | 备注 |
|---|---|---|
| 个人练习/演示 | 1 核 2G | 必须严格限制 JVM 内存,体验较差,易崩溃 |
| 小型内部系统 | 2 核 4G | 最推荐的“起步”配置,平衡性能与成本 |
| 正式对外业务 | 4 核 8G (应用) + 2 核 4G (DB) | 建议读写分离或独立数据库,确保稳定性 |
最终建议:如果预算允许,请直接选择 2 核 4G 的配置作为起点。现在的云服务器价格较低,提升一点配置带来的稳定性收益远高于节省的那点费用。
云知识CLOUD