若依分离版生产环境部署全流程指南

📅 2026/8/4 1:22:35
若依分离版生产环境部署全流程指南
1. 若依分离版部署全流程解析若依Ruoyi作为国内流行的开源企业级快速开发平台其分离版本采用前后端分离架构后端基于Spring Boot前端支持Vue2/Vue3是许多中小型项目快速搭建的首选方案。最近在帮客户部署一套生产环境时我重新梳理了整个部署流程发现网上很多教程存在步骤缺失或版本过时问题。这里分享一套经过实战验证的部署方案包含从环境准备到安全加固的全套操作。2. 环境准备与基础配置2.1 硬件与软件要求生产环境推荐配置服务器2核4G起步实测单节点可支撑日均5万PV操作系统CentOS 7.6/Ubuntu 18.04 LTSJDK1.8需与若依版本匹配新版支持JDK17MySQL5.7建议8.0性能提升明显Redis5.0必须安装用于会话管理和缓存Nginx1.18前端部署和反向代理重要提示若依官方推荐使用JDK1.8与MySQL5.7组合这是最稳定的搭配。虽然新版支持更高版本但在生产环境建议先做充分测试。2.2 基础环境安装以CentOS 7为例的安装命令# JDK安装 yum install -y java-1.8.0-openjdk-devel java -version # 验证安装 # MySQL安装官方源 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server # Redis安装 yum install -y epel-release yum install -y redis systemctl start redis数据库初始化时需要注意字符集必须使用utf8mb4排序规则选择utf8mb4_general_ci需要手动创建数据库如ry-vue3. 后端部署实战3.1 项目获取与编译推荐从Gitee官方仓库获取最新稳定版git clone https://gitee.com/y_project/RuoYi-Vue.git cd RuoYi-Vue/ruoyi-admin编译前需修改的关键配置application.yml# 数据源配置 datasource: url: jdbc:mysql://localhost:3306/ry-vue?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: root password: your_strong_password # Redis配置 redis: host: localhost port: 6379 password: database: 0编译命令mvn clean package -Dmaven.test.skiptrue3.2 服务启动与优化启动脚本示例start.sh#!/bin/bash nohup java -Xms512m -Xmx1024m -jar ruoyi-admin.jar --server.port8080 nohup.out 21 JVM参数优化建议小型项目-Xms512m -Xmx1024m中型项目-Xms2g -Xmx4g大型项目建议使用JDK11的ZGC或ShenandoahGC4. 前端部署详解4.1 项目构建前端项目位于ruoyi-ui目录构建前需修改// .env.production VUE_APP_BASE_API http://your-domain.com/prod-api构建命令npm install --registryhttps://registry.npmmirror.com npm run build:prod4.2 Nginx配置推荐的生产环境配置/etc/nginx/conf.d/ruoyi.confserver { listen 80; server_name your-domain.com; location / { root /home/ruoyi/projects/ruoyi-ui/dist; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/ruoyi.access.log; error_log /var/log/nginx/ruoyi.error.log; }5. 安全加固与运维5.1 基础安全措施修改默认账号密码admin/admin123开启验证码功能默认已开启配置HTTPSCertbot免费证书定期备份数据库建议每日全备binlog限制管理接口访问IP5.2 常见问题排查验证码不显示检查Redis是否正常运行接口405错误确认Nginx代理配置正确启动报错检查JDK版本和端口占用菜单加载慢优化SQL索引特别是sys_menu表6. 高级部署方案6.1 Docker部署后端Dockerfile示例FROM openjdk:8-jdk COPY target/ruoyi-admin.jar /app.jar ENTRYPOINT [java,-jar,/app.jar]前端Docker部署docker run -d -p 80:80 \ -v /path/to/dist:/usr/share/nginx/html \ nginx:alpine6.2 Kubernetes部署若依在K8s中的部署需要考虑ConfigMap管理配置Secret管理敏感信息Ingress暴露服务HPA自动扩缩容示例Deployment配置片段apiVersion: apps/v1 kind: Deployment metadata: name: ruoyi-backend spec: replicas: 2 template: spec: containers: - name: ruoyi image: ruoyi-admin:1.0.0 ports: - containerPort: 8080 envFrom: - configMapRef: name: ruoyi-config7. 性能监控与优化建议集成Spring Boot Admin监控应用状态Prometheus Grafana性能指标可视化SkyWalking分布式追踪Logstash日志集中管理关键监控指标JVM内存使用率GC次数和时间SQL执行时间API响应时间P998. 二次开发建议代码规范遵循若依原有的注解风格扩展方式尽量通过新增模块而非修改核心代码版本控制建立自己的Git仓库定期同步官方更新文档维护修改代码时同步更新注释我在实际部署中发现若依的权限体系设计非常完善二次开发时应优先利用现有机制通过RequiresPermissions控制接口权限使用DataScope实现数据权限利用Log记录操作日志对于需要高性能的场景建议将频繁访问的字典数据放入Redis对复杂报表使用定时任务预生成大文件上传使用MinIO替代本地存储最后分享一个实用技巧在application-dev.yml中添加以下配置可以极大提升开发效率# 关闭Thymeleaf缓存 spring: thymeleaf: cache: false devtools: restart: enabled: true # 显示完整SQL日志 logging: level: com.ruoyi: debug