Ruoyi 是一个基于 Spring Boot 的开源快速开发框架,广泛用于企业级后台管理系统。在部署 Ruoyi 到生产环境时,服务器配置需要根据实际业务规模、并发量、数据量等因素进行合理规划。以下是 Ruoyi 框架在生产环境中的典型服务器要求建议:
一、基础运行环境要求
| 组件 | 要求 |
|---|---|
| 操作系统 | Linux(推荐 CentOS 7+/Ubuntu 18.04+),Windows Server(仅限测试) |
| Java 版本 | JDK 8 或 JDK 11(推荐 OpenJDK 或 Oracle JDK) |
| 数据库 | MySQL 5.7 或 MySQL 8.0(推荐) 支持 Oracle、PostgreSQL(需适配) |
| Web 容器 | 内嵌 Tomcat(Spring Boot 默认) 也可外置部署到 Tomcat/Jetty |
| 构建工具 | Maven 3.6+ |
| Redis(可选) | 若使用缓存、验证码、在线会话等功能,建议部署 Redis 5.0+ |
二、服务器硬件配置建议(根据项目规模)
1. 小型项目(日活 < 1000,用户数 < 5000)
- CPU:2 核
- 内存:4 GB(JVM 堆内存建议 2G)
- 硬盘:50 GB SSD(系统 + 应用 + 数据库)
- 带宽:1~5 Mbps
- 适用场景:内部管理系统、小团队使用
2. 中型项目(日活 1000~5000,用户数 < 2万)
- CPU:4 核
- 内存:8 GB(JVM 堆内存建议 4G)
- 硬盘:100 GB SSD(建议数据库与应用分离)
- 带宽:5~10 Mbps
- 建议:数据库单独部署,启用 Redis 缓存
3. 大型项目(高并发、多模块、分布式)
- CPU:8 核以上
- 内存:16 GB 或更高
- 硬盘:200 GB+ SSD(RAID 配置,定期备份)
- 带宽:10 Mbps 以上
- 架构建议:
- 使用 Nginx 做负载均衡和静态资源X_X
- 数据库主从复制或读写分离
- Redis 集群
- 可考虑将 Ruoyi Cloud 微服务版本部署在 Kubernetes 集群中
三、软件依赖与中间件
| 组件 | 说明 |
|---|---|
| Nginx | 用于反向X_X、负载均衡、静态资源托管(如前端 dist 目录) |
| MySQL | 主数据库,建议开启慢查询日志、定期备份 |
| Redis | 缓存、登录会话管理、验证码存储等 |
| MinIO / FastDFS / 本地存储 | 文件上传功能所需 |
| RabbitMQ / Kafka(可选) | 异步任务、消息通知等高级功能 |
| Elasticsearch(可选) | 全文检索功能集成 |
四、安全与运维建议
-
防火墙配置:
- 开放必要端口(如 80、443、22),关闭不必要的端口
- 数据库端口(3306)不对外暴露
-
HTTPS 配置:
- 使用 Let's Encrypt 或商业 SSL 证书配置 HTTPS
-
JVM 参数优化(示例):
-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Duser.timezone=GMT+08 -
日志管理:
- 日志文件按天滚动,避免磁盘占满
- 可接入 ELK(Elasticsearch + Logstash + Kibana)做集中日志分析
-
监控与告警:
- 使用 Prometheus + Grafana 监控 JVM、数据库、服务器资源
- 集成 SkyWalking 做链路追踪(适用于 Ruoyi Cloud)
五、部署方式建议
-
单体版(RuoYi-Vue):
- 后端打包为
jar文件,通过nohup java -jar启动 - 前端打包后由 Nginx 托管
- 后端打包为
-
微服务版(RuoYi-Cloud):
- 使用 Spring Cloud Alibaba 技术栈
- 需部署 Nacos、Sentinel、Gateway、Seata 等组件
- 推荐使用 Docker + Docker Compose 或 Kubernetes 部署
总结
| 项目规模 | 推荐配置 |
|---|---|
| 小型系统 | 2C4G + MySQL + 单节点部署 |
| 中型系统 | 4C8G + Redis + Nginx + 数据库分离 |
| 大型系统 | 分布式架构 + 微服务 + 高可用集群 |
⚠️ 注意:具体配置应结合压测结果和业务增长预期动态调整。
如你提供具体的用户量、并发数、功能模块(如是否含文件服务、定时任务、报表导出等),我可以给出更精确的建议。
CLOUD云计算