若依前后端分离版在Linux服务器上运行需要什么配置?

若依(RuoYi)前后端分离版(即 ruoyi-vueruoyi-cloud)在 Linux 服务器上部署,需分别配置后端(Spring Boot + MySQL + Redis + Nginx)和前端(Vue CLI 项目),并确保环境兼容、安全可靠。以下是生产环境推荐的完整配置清单与关键步骤(以主流 ruoyi-vue(单体后端 + Vue 前端)为例):


✅ 一、基础环境要求(Linux 服务器)

组件 推荐版本 说明
操作系统 CentOS 7/8、Ubuntu 20.04/22.04、Alibaba Cloud Linux 3 避免使用过旧或已 EOL 系统(如 CentOS 6)
JDK OpenJDK 11 或 17(LTS) ⚠️ 若依 v4.x+ 官方推荐 JDK 11;v5.x+ 支持 JDK 17。禁止使用 JDK 8(不兼容 Spring Boot 2.7+/3.x)
Maven 3.6.3+(编译后端用) 仅构建时需要,运行时无需
Node.js 16.x 或 18.x(LTS) Vue CLI 5.x 要求 Node ≥ 16.10;避免使用 Node 20+(部分插件兼容性问题)
npm / pnpm npm ≥ 8.x 或 pnpm ≥ 8.x 推荐 pnpm(更快更省空间)

🔍 验证命令:

java -version    # 应显示 openjdk 11.0.x 或 17.0.x
node -v          # 应显示 v16.x 或 v18.x
npm -v           # ≥ 8.x,或 pnpm -v ≥ 8.x

✅ 二、运行时依赖服务(必须安装并启动)

服务 版本建议 配置要点 是否必需
MySQL 5.7+ 或 8.0.x(推荐 8.0.33+) • 字符集设为 utf8mb4
• 创建数据库 ry(默认名),执行 sql/ry_2023xxxx.sql 初始化
• 开放远程访问(如需)并授权用户(如 ry@%
✅ 必需
Redis 6.x 或 7.x(单机即可) • 修改 redis.confbind 0.0.0.0(或绑定内网IP)、protected-mode no(生产建议改 yes + 密码)
• 设置密码(requirepass yourStrongPass123)并在 application.yml 中配置
✅ 必需(验证码、在线用户、缓存等)
Nginx 1.18+(反向X_X + 静态资源服务) • 用于X_X前端(/)和后端 API(/prod-api/
• 启用 gzip、HTTPS(强烈建议)、CORS(若跨域调试)
✅ 必需(替代前端 npm run serve 和后端直接暴露端口)

💡 注:若依默认后端接口路径为 /prod-api/(见 vue.config.jsdevServer.proxynginx.conf 配置),Nginx 必须正确重写路径


✅ 三、后端部署(Spring Boot)

1. 编译打包(在服务器或本地)

cd ruoyi/ruoyi-admin
mvn clean package -Dmaven.test.skip=true
# 输出:target/ruoyi-admin.jar

2. 配置文件修改(关键!)

  • 编辑 ruoyi-admin/src/main/resources/application-prod.yml

    spring:
    datasource:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
      username: ry
      password: yourPassword
    
    redis:
    host: 127.0.0.1
    port: 6379
    password: yourStrongPass123   # 若 Redis 设了密码,必须填
    database: 0
    
    # 生产环境关闭 devtools、开启日志等

3. 启动(推荐使用 systemd 管理)

# 创建 /etc/systemd/system/ruoyi-admin.service
[Unit]
Description=Ruoyi Admin Service
After=network.target

[Service]
Type=simple
User=ruoyi
WorkingDirectory=/opt/ruoyi
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/ruoyi/ruoyi-admin.jar --spring.profiles.active=prod
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable ruoyi-admin
sudo systemctl start ruoyi-admin
sudo systemctl status ruoyi-admin  # 检查是否 RUNNING

✅ 日志查看:journalctl -u ruoyi-admin -f


✅ 四、前端部署(Vue)

1. 构建生产包

cd ruoyi/ruoyi-ui
npm install  # 或 pnpm install
npm run build  # 输出到 dist/ 目录

2. 配置 Nginx(关键!)

# /etc/nginx/conf.d/ruoyi.conf
upstream ruoyi-api {
    server 127.0.0.1:8080;  # 后端 Spring Boot 默认端口
}

server {
    listen       80;
    server_name  your-domain.com;  # 替换为你的域名或IP

    # 前端静态资源
    location / {
        root   /opt/ruoyi/dist;
        try_files $uri $uri/ /index.html;
    }

    # 后端APIX_X(必须匹配前端 axios baseURL)
    location /prod-api/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://ruoyi-api/;
        proxy_redirect off;
        proxy_read_timeout 60;
    }

    # 可选:启用 HTTPS(强烈推荐)
    # listen 443 ssl;
    # ssl_certificate /path/to/fullchain.pem;
    # ssl_certificate_key /path/to/privkey.pem;
}

✅ 重启 Nginx:sudo nginx -t && sudo systemctl reload nginx

⚠️ 注意:/prod-api/ 是若依前端默认 API 前缀(见 vue.config.js),Nginx 的 location /prod-api/ 必须存在且 proxy_pass 正确指向后端。


✅ 五、安全与生产加固(重要!)

项目 推荐操作
防火墙 开放 80/443(Nginx),禁止开放 8080(后端端口)给公网;仅允许 Nginx 本地访问
数据库安全 • 删除匿名用户、test 数据库
• MySQL 用户仅授权最小权限(GRANT SELECT,INSERT,UPDATE,DELETE ON ry.* TO 'ry'@'localhost'
Redis 安全 • 生产务必设置密码 + bind 127.0.0.1(禁用公网监听)
• 或通过防火墙限制 6379 仅允许 127.0.0.1 访问
后端安全 • 修改默认管理员账号密码(首次登录后立即修改)
• 在 application-prod.yml 中关闭敏感端点:
management.endpoints.web.exposure.include: health,info
HTTPS 使用 Let’s Encrypt(certbot)免费签发证书,强制 HTTP → HTTPS 重定向

✅ 六、常见问题排查

现象 可能原因 解决方案
页面空白 / 404 Nginx 未正确指向 dist/try_files 错误 检查 root 路径、index.html 存在性、Nginx 错误日志 tail -f /var/log/nginx/error.log
登录提示“系统错误”或 500 后端未启动 / MySQL 连接失败 / Redis 密码错误 systemctl status ruoyi-admin + 查看日志;检查 application-prod.yml 数据库/Redis 配置
验证码不显示 Redis 未启动 / 密码错误 / 连接超时 redis-cli -h 127.0.0.1 -p 6379 -a yourPass PING 测试
登录后菜单为空 前端未正确加载路由(可能因 prod-api/getMenu 接口 401/404) 检查浏览器 Network → /prod-api/getMenu 返回状态;确认后端 ruoyi-system 模块正常、数据库 sys_menu 有数据

✅ 附:一键检查脚本(可选)

#!/bin/bash
echo "=== Ruoyi 环境检查 ==="
java -version 2>/dev/null | head -1
node -v
npm -v
mysql --version 2>/dev/null
redis-cli --version 2>/dev/null
nginx -v 2>/dev/null
systemctl is-active ruoyi-admin 2>/dev/null
curl -I http://localhost:8080/actuator/health 2>/dev/null | head -1
echo "✅ 检查完成"

📌 总结核心要点

✅ JDK 11/17 + Node 16/18
✅ MySQL(utf8mb4)+ Redis(带密码)+ Nginx(反向X_X /prod-api/
✅ 后端 application-prod.yml 配置正确 + systemd 托管
✅ 前端 npm run build + Nginx root + try_files
严禁暴露 8080/6379/3306 到公网!全部走 Nginx 统一入口

如需我提供:
🔹 完整的 nginx.conf 示例
🔹 systemd 服务文件模板
🔹 MySQL 初始化 SQL 下载链接
🔹 Let’s Encrypt HTTPS 配置指南
🔹 或针对 ruoyi-cloud(微服务版)的额外配置
欢迎随时告知,我可以为你定制生成 👇

祝你部署顺利!🚀

未经允许不得转载:CLOUD云枢 » 若依前后端分离版在Linux服务器上运行需要什么配置?