
1. 若依管理系统与Rocky Linux 9环境概述RuoYi若依是一套基于Spring BootVue的前后端分离权限管理系统采用经典技术组合Spring Boot、Apache Shiro、MyBatis、Redis等内置模块包含用户管理、角色权限、系统监控、代码生成等功能。我在多个企业级项目中实测发现它的模块化设计和清晰的代码结构特别适合快速构建中后台管理系统。选择Rocky Linux 9作为部署环境有三个实际优势首先它是RHEL的完美替代品我在生产环境跑了半年没出过兼容性问题其次其安全更新周期长达10年最重要的是默认搭载的OpenJDK 17和MySQL 8.0正是若依需要的环境。最近帮客户迁移CentOS 7到Rocky 9时发现软件仓库的依赖解决速度比Ubuntu快30%左右。部署前需要准备三台服务器也可单机部署前端服务器运行Nginx 1.20负责静态资源托管和反向代理应用服务器需要JDK 17、Maven 3.8运行Spring Boot应用数据库服务器MySQL 8.0和Redis 6.2建议配置主从复制实测中发现若依v3.9.0对Node.js版本较敏感16.x稳定而18.x会出现sass编译错误2. 系统初始化与安全配置2.1 基础环境准备首先在所有节点执行安全加固这是很多教程会忽略的关键步骤。我遇到过因为没关SELinux导致Nginx 403的坑# 禁用防火墙内网环境建议 sudo systemctl stop firewalld sudo systemctl disable firewalld # 关闭SELinux必须立即生效永久关闭 sudo setenforce 0 sudo sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config然后更新系统并安装基础工具包sudo dnf update -y sudo dnf install -y epel-release vim wget curl git lsof2.2 时间同步配置分布式部署最怕时间不同步会导致Redis缓存异常和JWT失效。我用chrony替代ntpsudo dnf install -y chrony sudo systemctl enable --now chronyd chronyc sources -v # 验证时间源3. 后端服务部署实战3.1 JDK与Maven安装OpenJDK 17是若依v3.9.0的推荐版本比JDK 8性能提升约40%sudo dnf install -y java-17-openjdk-devel java -version # 应显示17.xMaven建议手动安装以便版本控制wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz tar -xzf apache-maven-3.8.8-bin.tar.gz -C /usr/local/ echo export MAVEN_HOME/usr/local/apache-maven-3.8.8 export PATH$MAVEN_HOME/bin:$PATH | sudo tee /etc/profile.d/maven.sh source /etc/profile.d/maven.sh3.2 源码编译与配置克隆代码时建议指定分支默认分支可能有未修复的BUGgit clone -b v3.9.0 https://gitee.com/y_project/RuoYi-Vue.git关键配置修改有两个文件ruoyi-admin/src/main/resources/application-druid.yml配置主从数据库ruoyi-admin/src/main/resources/application.yml修改Redis连接数据库连接池建议调整根据服务器配置# application-druid.yml initialSize: 5 maxActive: 50 minIdle: 10 maxWait: 600003.3 服务启动与守护打包完成后建议用nohup守护进程nohup java -Xms512m -Xmx2g -jar ruoyi-admin.jar app.log 21 更专业的做法是配置systemd服务# /etc/systemd/system/ruoyi.service [Unit] DescriptionRuoYi Admin Service [Service] ExecStart/usr/bin/java -Xmx2048m -jar /opt/ruoyi/ruoyi-admin.jar Userwww-data Restartalways [Install] WantedBymulti-user.target4. 前端工程部署详解4.1 Node.js环境搭建Node.js 16.x是最稳定选择wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz tar -xJf node-v16.20.2-linux-x64.tar.xz -C /usr/local/ ln -s /usr/local/node-v16.20.2-linux-x64/bin/* /usr/local/bin/配置淘宝镜像加速npm config set registry https://registry.npmmirror.com4.2 前端编译优化安装依赖时建议缓存优化npm install --prefer-offline --no-audit生产环境构建需要调整vue.config.jsmodule.exports { publicPath: /, outputDir: dist, assetsDir: static, productionSourceMap: false, // 关闭sourcemap提升安全性 devServer: { proxy: { /prod-api: { target: http://后端服务器IP:8080, changeOrigin: true } } } }5. 数据库与中间件配置5.1 MySQL 8.0安全部署安装官方最新版MySQLsudo dnf install -y mysql-server mysql-client sudo systemctl enable --now mysqld密码策略调整根据安全要求ALTER USER rootlocalhost IDENTIFIED BY 复杂密码; CREATE DATABASE ruoyi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON ruoyi.* TO ruoyi% IDENTIFIED BY 应用专用密码; FLUSH PRIVILEGES;5.2 Redis性能调优修改/etc/redis/redis.conf关键参数bind 0.0.0.0 requirepass 你的Redis密码 maxmemory 2gb maxmemory-policy allkeys-lru建议配置持久化appendonly yes appendfsync everysec6. Nginx反向代理配置6.1 负载均衡配置多实例部署时需要配置upstreamupstream backend { server 192.168.1.10:8080 weight5; server 192.168.1.11:8080; keepalive 32; } server { location /prod-api/ { proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Connection ; } }6.2 静态资源优化开启gzip和缓存gzip on; gzip_types text/plain application/xml text/css application/javascript; gzip_min_length 1024; location /static { expires 365d; add_header Cache-Control public; }7. 部署验证与故障排查访问系统后建议立即修改admin默认密码检查「系统监控」下的服务状态测试代码生成功能是否正常常见问题解决方案前端白屏检查Nginx的try_files配置接口404确认/prod-api/的proxy_pass地址Redis连接失败检查requirepass和bind配置数据库乱码确保连接参数有characterEncodingutf8日志查看优先级Nginx错误日志/var/log/nginx/error.logSpring Boot日志ruoyi-admin.jar同级目录的logs文件夹MySQL慢查询日志/var/log/mysql/mysql-slow.log