Rocky Linux 9.5上保姆级部署若依RuoYi-Vue 3.9.0:三台虚拟机从零到访问的完整避坑记录
Rocky Linux 9.5三机集群部署若依RuoYi-Vue 3.9.0全流程实战指南
当我们需要在企业内网环境部署一套完整的前后端分离管理系统时,若依(RuoYi)框架因其开箱即用的权限管理和代码生成功能成为热门选择。本文将基于Rocky Linux 9.5操作系统,通过三台独立虚拟机(前端服务器、后端服务器、数据库服务器)的集群部署方式,手把手带你完成RuoYi-Vue 3.9.0版本的完整部署过程,特别针对MySQL 8.0连接、Redis密码配置等易错环节提供详细解决方案。
1. 环境规划与准备
在开始部署前,我们需要明确各服务器的角色和软件配置。建议使用至少2核4G配置的虚拟机,三台机器网络互通且能互相解析主机名。
服务器角色分配表:
| 服务器类型 | 必需软件 | 推荐配置 |
|---|---|---|
| 前端服务器 | Nginx 1.20+ | 2核/2GB |
| 后端服务器 | JDK 1.8、Maven 3.8+、Node 16 | 2核/4GB |
| 数据库服务器 | MySQL 8.0、Redis 6.2+ | 2核/4GB |
提示:生产环境建议将MySQL和Redis分开部署,本文为演示采用单机部署方式
首先在所有服务器执行基础环境配置:
# 关闭SELinux(所有服务器) sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 关闭防火墙(内网环境建议操作) sudo systemctl stop firewalld sudo systemctl disable firewalld # 设置主机名解析(所有服务器) sudo hostnamectl set-hostname frontend # 前端服务器执行 sudo hostnamectl set-hostname backend # 后端服务器执行 sudo hostnamectl set-hostname db # 数据库服务器执行2. 数据库服务器部署
数据库服务器需要安装MySQL 8.0和Redis 6.2,这是若依系统运行的核心依赖。
2.1 MySQL 8.0安装与配置
# 安装MySQL官方仓库 sudo yum -y install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm # 安装MySQL服务器(注意禁用8.4 LTS仓库) sudo yum --enablerepo mysql80-community --disablerepo mysql-8.4-lts-community -y install mysql-community-server # 启动服务并设置开机自启 sudo systemctl enable --now mysqld获取初始密码并修改:
# 获取临时密码 temp_pass=$(sudo awk '/A temporary password/{print $NF}' /var/log/mysqld.log) # 修改root密码(建议使用复杂密码) mysqladmin -uroot -p"$temp_pass" password 'RuoYi@DB123!'创建若依专用数据库和用户:
-- 登录MySQL mysql -uroot -p'RuoYi@DB123!' -- 执行以下SQL语句 CREATE DATABASE ruoyi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'ruoyi'@'%' IDENTIFIED BY 'RuoYi@User123!'; GRANT ALL PRIVILEGES ON ruoyi.* TO 'ruoyi'@'%'; FLUSH PRIVILEGES;2.2 Redis安装与安全配置
# 安装Redis sudo yum -y install redis # 编辑配置文件 sudo vi /etc/redis/redis.conf需要修改的关键配置项:
bind 0.0.0.0 requirepass RuoYi@Redis123! protected-mode yes启动并验证Redis服务:
sudo systemctl enable --now redis redis-cli -a 'RuoYi@Redis123!' ping # 应返回PONG3. 后端服务器部署
后端服务器需要安装JDK、Maven、Node.js等开发环境,并编译部署若依的后端Java代码。
3.1 基础环境安装
# 安装OpenJDK 8 sudo yum -y install java-1.8.0-openjdk-devel # 安装Git sudo yum -y install git # 下载并安装Maven wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz sudo tar -xzf apache-maven-3.8.8-bin.tar.gz -C /usr/local/ sudo ln -s /usr/local/apache-maven-3.8.8 /usr/local/maven # 下载并安装Node.js 16 wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz sudo tar -xJf node-v16.20.2-linux-x64.tar.xz -C /usr/local/ sudo ln -s /usr/local/node-v16.20.2-linux-x64 /usr/local/node配置环境变量:
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export MAVEN_HOME=/usr/local/maven export NODE_HOME=/usr/local/node export PATH=$PATH:$MAVEN_HOME/bin:$NODE_HOME/bin' | sudo tee /etc/profile.d/ruoyi.sh source /etc/profile.d/ruoyi.sh验证安装:
java -version # 应显示1.8.x mvn -v # 应显示Apache Maven 3.8.8 node -v # 应显示v16.20.2 npm -v # 应显示对应版本号3.2 若依后端部署
克隆若依项目代码并配置:
git clone https://gitee.com/y_project/RuoYi-Vue.git cd RuoYi-Vue修改数据库连接配置:
vi ruoyi-admin/src/main/resources/application-druid.yml关键配置项修改:
master: url: jdbc:mysql://db:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true username: ruoyi password: RuoYi@User123!修改Redis配置:
vi ruoyi-admin/src/main/resources/application.yml找到redis部分修改为:
redis: host: db port: 6379 password: RuoYi@Redis123! timeout: 10s编译打包后端项目:
mvn clean package -DskipTests启动后端服务:
cd ruoyi-admin/target/ nohup java -jar ruoyi-admin.jar > ruoyi.log 2>&1 &验证后端是否启动成功:
curl http://localhost:8080 # 应返回HTML内容或404页面(说明服务已运行)4. 前端服务器部署
前端服务器主要负责托管静态资源和反向代理后端API请求。
4.1 Nginx安装与配置
# 安装Nginx sudo yum -y install nginx # 启动服务 sudo systemctl enable --now nginx配置Nginx作为前端代理:
sudo vi /etc/nginx/nginx.conf替换为以下内容(保留最外层的http块):
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html/ruoyi; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://backend: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; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }4.2 前端项目部署
在后端服务器上编译前端项目:
cd RuoYi-Vue/ruoyi-ui npm install --registry http://registry.npmmirror.com npm run build:prod将编译好的前端文件传输到前端服务器:
scp -r dist/* root@frontend:/usr/share/nginx/html/ruoyi在前端服务器上创建目录并设置权限:
sudo mkdir -p /usr/share/nginx/html/ruoyi sudo chown -R nginx:nginx /usr/share/nginx/html/ruoyi重启Nginx服务:
sudo systemctl restart nginx5. 系统初始化与访问测试
在数据库服务器导入若依的初始化SQL文件:
# 从后端服务器传输SQL文件 scp RuoYi-Vue/sql/*.sql root@db:/tmp/ # 在数据库服务器执行导入 mysql -uroot -p'RuoYi@DB123!' ruoyi < /tmp/ry_20250522.sql mysql -uroot -p'RuoYi@DB123!' ruoyi < /tmp/quartz.sql访问测试:
- 打开浏览器访问前端服务器IP地址
- 使用默认账号登录:
- 用户名:admin
- 密码:admin123
常见问题排查:
- 如果前端显示但接口报错,检查Nginx的/prod-api/代理配置
- 如果登录失败,检查后端日志查看具体错误
- 如果数据库连接失败,验证MySQL用户权限和密码
6. 生产环境优化建议
安全加固:
- 为MySQL和Redis配置适当的防火墙规则
- 考虑使用SSL加密前端与后端的通信
- 定期轮换数据库密码
性能调优:
# Nginx工作进程优化 worker_processes auto; worker_connections 1024; # Java应用JVM参数调整 java -Xms512m -Xmx1024m -jar ruoyi-admin.jar高可用方案:
- 后端服务使用systemd托管并配置自动重启
- 考虑使用Nginx负载均衡多个后端实例
- 对重要数据配置定期备份任务
监控方案:
# 简易监控脚本示例 while true; do if ! curl -s http://localhost:8080 >/dev/null; then systemctl restart ruoyi fi sleep 30 done
部署完成后,建议立即修改默认管理员密码,并根据实际需求配置系统参数。若依框架提供了完善的代码生成功能,可以快速开发业务模块,大幅提升开发效率。
