奋斗
努力

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

云计算

若依(RuoYi)前后端分离版在 Linux 服务器上运行,通常需要配置 JDK、MySQL、Redis、Nginx 以及前端构建产物。以下是核心环境要求与部署步骤详解:


一、基础环境要求

组件 最低版本 推荐版本 说明
操作系统 CentOS 7 / Ubuntu 18.04+ CentOS 7.9 / Ubuntu 22.04 LTS 需支持 systemd 服务管理
JDK JDK 1.8 JDK 11 或 17(根据项目配置) 后端 Spring Boot 依赖;注意 ruoyi 默认多为 JDK 8
MySQL 5.7 MySQL 5.7 或 8.0 需创建对应数据库并导入 SQL
Redis 3.0+ Redis 6.x 或 7.x 用于缓存、验证码、分布式锁等
Nginx 1.14+ 1.18+ 用于反向X_X前端静态资源 + API 转发
Node.js(仅构建时) 14.x 16.x 或 18.x 仅在本地或服务器构建前端时使用,生产环境无需

✅ 提示:若依官方示例多基于 JDK 8 + MySQL 5.7 + Redis 3.2+,建议优先匹配此组合以避免兼容问题。


二、关键配置文件修改(生产环境必读)

1. 后端 application.ymlruoyi-system/src/main/resources/

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ry_2025?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: your_strong_password
    driver-class-name: com.mysql.cj.jdbc.Driver

  redis:
    host: localhost
    port: 6379
    password: # 如有密码则填写
    database: 0

# 关闭 Swagger(生产环境建议禁用)
swagger:
  enabled: false

# 文件上传路径(务必指向真实存在目录)
upload:
  path: /home/ruoyi/upload

# 允许跨域(如前后端不同域名)
cors:
  allowed-origins: "*"

2. Nginx 配置(/etc/nginx/conf.d/ruoyi.conf

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

    # 前端静态资源(dist 目录)
    location / {
        root /home/ruoyi/front/dist; # 确保该目录存在且权限正确
        try_files $uri $uri/ /index.html; # SPA 路由回退
        index index.html;
    }

    # 后端 API 接口转发(避免 CORS 问题)
    location /system/ {
        proxy_pass http://127.0.0.1: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;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 超时设置(大文件上传需调大)
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }

    # 登录验证接口特殊处理(可选)
    location /login {
        proxy_pass http://127.0.0.1:8080/login;
    }
}

🔒 安全建议:

  • 生产环境关闭 debug 模式
  • 使用 HTTPS(Let’s Encrypt 免费证书)
  • 限制 Nginx 只监听必要端口
  • 定期更新系统补丁

三、部署流程(以 CentOS 为例)

# 1. 安装依赖
sudo yum install -y java-1.8.0-openjdk-devel mysql-server redis nginx wget curl

# 2. 启动服务
sudo systemctl enable --now mysqld redis nginx
sudo systemctl start mysqld redis nginx

# 3. 初始化数据库
mysql -u root -p < ruoyi.sql  # 替换为实际 SQL 文件路径

# 4. 编译前端(仅需一次)
cd front
npm install
npm run build:prod

# 5. 部署后端 JAR
cp ruoyi-admin/target/*.jar /home/ruoyi/app.jar
mkdir -p /home/ruoyi/upload /home/ruoyi/logs

# 6. 创建 systemd 服务
sudo tee /etc/systemd/system/ruoyi.service > /dev/null <<EOF
[Unit]
Description=RuoYi Admin Service
After=syslog.target network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/ruoyi
ExecStart=/usr/bin/java -jar app.jar --spring.profiles.active=prod
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now ruoyi

# 7. 配置防火墙
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

四、常见问题排查

问题现象 可能原因 解决方案
前端页面 404 Nginx 未配置 try_files 或 dist 目录错误 检查 root 路径 & index.html 是否存在
后端无法连接 Redis Redis 未启动 / 密码错误 / 防火墙拦截 redis-cli ping 测试;检查 bind 127.0.0.1 配置
文件上传失败 upload.path 目录无写权限 chmod -R 755 /home/ruoyi/upload
登录页白屏 浏览器缓存旧 JS/CSS 强制刷新(Ctrl+F5)或清除缓存
中文乱码 MySQL 字符集非 utf8mb4 ALTER DATABASE ry_2025 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

五、进阶建议

  • ✅ 使用 Docker 部署(推荐):可一键封装所有依赖,便于迁移和备份
    FROM openjdk:8-jre-alpine
    COPY app.jar /app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]
  • ✅ 日志监控:集成 ELK 或 Prometheus + Grafana 实时监控 JVM 内存、GC、QPS
  • ✅ 高可用:后端多实例 + Nginx 负载均衡;Redis 哨兵模式;MySQL 主从复制

需要我提供 Docker Compose 完整部署脚本自动化部署 Shell 脚本模板 吗?

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