若依管理系统部署到服务器需要的配置是什么?

若依(RuoYi)管理系统是一个基于 Spring Boot、MyBatis 和 Vue 的流行开源框架,将其部署到生产服务器需要做好操作系统环境中间件依赖数据库配置以及项目本身的准备工作。

以下是标准的部署配置清单及关键步骤:

1. 基础运行环境

这是最核心的部分,若依后端对 Java 版本有严格要求。

  • JDK 版本
    • RuoYi-Vue (前后端分离版):通常要求 JDK 1.8JDK 17(取决于具体分支)。如果是较新的 ruoyi-vue-proruoyi-cloud 版本,可能强制要求 JDK 17。建议统一使用 JDK 1.8(如 OpenJDK 1.8.0_xxx)以兼容大多数旧版教程,或根据文档指定版本。
    • 安装检查:在终端输入 java -version 确认版本无误。
  • Maven
    • 用于打包项目。推荐使用 Maven 3.6+
    • 配置注意:需配置阿里云镜像提速下载依赖,并修改 settings.xml 中的本地仓库路径。
  • Node.js(仅前端构建需要):
    • 若依的前端(Vue)需要编译打包。推荐 Node.js 14.x16.x LTS 版本。
    • 用于执行 npm installnpm run build:prod

2. 数据库配置 (MySQL)

若依默认使用 MySQL 作为数据存储。

  • MySQL 版本:推荐 5.78.0
    • 注意:MySQL 8.0 默认密码插件为 caching_sha2_password,若连接报错需调整驱动或用户权限。
  • 字符集与排序规则
    • 必须设置为 utf8mb4utf8mb4_general_ci,否则中文会乱码。
    • SQL 初始化脚本位于 ruoyi-admin/src/main/resources/db/ 目录下。
  • 权限管理
    • 创建一个专用数据库用户,赋予该用户对特定数据库的 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP 权限,严禁使用 root 账号直接连接应用。

3. 服务器系统与安全配置

  • 操作系统:CentOS 7/8, Ubuntu 20.04/22.04 等主流 Linux 发行版。
  • 防火墙
    • 开放必要端口:
      • 9200 (若依默认后端端口,可自定义)。
      • 80/443 (Nginx 反向X_X端口)。
      • 22 (SSH)。
    • 关闭不必要的端口,防止暴力破解。
  • 安全加固
    • 修改 SSH 默认端口(可选但推荐)。
    • 配置 Fail2Ban 防止 SSH 爆破。
    • 定期更新系统补丁。

4. Web 服务器与反向X_X (Nginx)

生产环境不建议直接使用 Tomcat 或 Spring Boot 内置容器对外暴露,应通过 Nginx 进行反向X_X,以提升性能、处理静态资源和 SSL 加密。

  • Nginx 配置要点
    • 静态资源映射:将前端 dist 目录下的文件映射到 /usr/share/nginx/html 或直接指向构建后的路径。
    • 后端转发:将 API 请求(如 /system/*, /job/*)转发到 Spring Boot 应用的地址(如 http://127.0.0.1:9200)。
    • WebSocket 支持:若依涉及实时通知,需在 Nginx 中配置 WebSocket 升级头 (UpgradeConnection)。
    • Gzip 压缩:开启 Gzip 减小传输体积。
    • SSL/HTTPS:配置 Let’s Encrypt 证书,强制 HTTP 跳转 HTTPS。

5. 项目配置文件修改

在部署前,必须修改 application.yml (或 application-dev.yml) 中的关键参数,使其适应生产环境:

server:
  port: 9200 # 生产环境建议修改非默认端口,增加安全性

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ry_2024?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
    username: ruoyi_user
    password: StrongPassword123! # 不要使用弱口令
    driver-class-name: com.mysql.cj.jdbc.Driver

# 若依特有的缓存配置 (Redis)
redis:
  host: localhost
  port: 6379
  password: "" # 生产环境务必设置 Redis 密码
  database: 0

6. 其他可选中间件

  • Redis:若依默认使用 Redis 做缓存和 Session 存储。如果生产环境数据量大,建议单独部署 Redis 集群或主从架构。
  • MinIO / OSS:若依的文件上传功能默认使用本地磁盘。生产环境强烈建议对接对象存储(如 MinIO、阿里云 OSS、七牛云),避免服务器磁盘爆满且便于扩展。

7. 部署流程总结

  1. 准备环境:安装 JDK, Maven, Node, MySQL, Redis, Nginx。
  2. 初始化数据库:导入 SQL 脚本,创建表结构和初始字典数据。
  3. 编译后端
    cd ruoyi-admin
    mvn clean package -DskipTests

    生成 ruoyi-admin.jar

  4. 编译前端
    cd ruoyi-ui
    npm install
    npm run build:prod

    生成 dist 文件夹。

  5. 启动服务
    • 后端:nohup java -jar ruoyi-admin.jar --spring.profiles.active=prod &
    • 或使用 Supervisor/Systemd 管理进程自启。
  6. 配置 Nginx:编写 nginx.conf,重启 Nginx。
  7. 验证:访问域名,测试登录、API 调用及文件上传功能。

⚠️ 重要安全提示

  • 禁止公网直接暴露后端端口:Spring Boot 默认端口(如 9200)不要直接暴露在 80/443,务必通过 Nginx X_X。
  • 敏感信息脱敏:确保 application.yml 中的数据库密码、Redis 密码不包含在 Git 仓库中(使用 .gitignore 忽略,或改用环境变量注入)。
  • 定时任务清理:生产环境建议在 Nginx 或应用层配置日志切割策略,防止日志文件撑爆磁盘。
未经允许不得转载:CLOUD技术博 » 若依管理系统部署到服务器需要的配置是什么?