三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Windows Server上从零部署RuoYi-Vue:保姆级避坑指南(含Redis、Nginx配置)

Windows Server上从零部署RuoYi-Vue:保姆级避坑指南(含Redis、Nginx配置)

Windows Server上从零部署RuoYi-Vue:保姆级避坑指南(含Redis、Nginx配置)

1. 环境准备与基础配置

在开始部署RuoYi-Vue之前,确保你的Windows Server已经完成以下基础环境配置。一台刚安装好的Windows Server 2016/2019/2022系统需要特别注意这些准备工作:

系统要求检查清单

  • 确保系统已安装最新补丁(运行winver检查版本)
  • 关闭Windows Defender实时防护(临时关闭即可)
  • 以管理员身份运行所有安装和配置操作
  • 准备至少8GB内存(RuoYi-Vue运行需要4GB以上)

1.1 JDK安装与配置

RuoYi-Vue要求Java 8或11环境,以下是推荐安装步骤:

  1. 下载AdoptOpenJDK 11 HotSpot版本(推荐使用.msi安装包)
  2. 安装时勾选"Set JAVA_HOME variable"选项
  3. 验证安装:
    java -version javac -version
  4. 手动检查环境变量:
    • JAVA_HOME应指向JDK安装目录(如C:\Program Files\AdoptOpenJDK\jdk-11.0.xx-hotspot
    • Path中应包含%JAVA_HOME%\bin

注意:避免使用Oracle JDK,可能遇到许可问题。如果必须使用,建议配置JVM参数:

-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m

1.2 Maven环境配置

RuoYi-Vue使用Maven进行依赖管理:

  1. 下载Maven 3.6+二进制包(建议使用3.8.6)
  2. 解压到C:\Program Files\apache-maven-3.8.6
  3. 配置环境变量:
    • MAVEN_HOME= 安装目录
    • Path中添加%MAVEN_HOME%\bin
  4. 修改conf/settings.xml
    <mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>

验证配置:

mvn -v

2. Redis服务部署与优化

2.1 Redis安装与配置

不同于简单的解压即用,生产环境需要特别注意以下配置:

  1. 下载Redis 5.0+ Windows版本(推荐使用微软维护的分支)
  2. 解压到C:\Redis(避免路径含空格或中文)
  3. 关键配置修改(redis.windows.conf):
    bind 127.0.0.1 port 6379 maxmemory 1GB maxmemory-policy allkeys-lru requirepass yourStrongPassword
  4. 安装为服务:
    redis-server --service-install redis.windows.conf --loglevel notice --service-name Redis_RuoYi

2.2 服务优化与故障排查

常见问题解决方案

问题现象可能原因解决方案
服务启动后立即停止端口冲突修改port或运行net stop Redis_RuoYi
内存占用过高未设内存限制配置maxmemory参数
连接被拒绝防火墙阻止添加Windows防火墙入站规则

性能优化建议

  • 定期执行内存整理:
    redis-cli --pass yourStrongPassword MEMORY PURGE
  • 监控内存使用:
    redis-cli --pass yourStrongPassword INFO memory

3. 后端项目部署实战

3.1 项目编译与打包

  1. 克隆RuoYi-Vue项目:
    git clone https://gitee.com/y_project/RuoYi-Vue.git
  2. 修改关键配置(ruoyi-admin/src/main/resources/application.yml):
    server: port: 8080 servlet: context-path: / redis: host: 127.0.0.1 port: 6379 password: yourStrongPassword
  3. 执行完整构建:
    cd RuoYi-Vue mvn clean package -DskipTests

3.2 服务化部署方案

方案一:传统BAT脚本启动

  1. 创建启动脚本start.bat
    @echo off set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java %JAVA_OPTS% -jar ruoyi-admin.jar > console.log 2>&1
  2. 创建停止脚本stop.bat
    @echo off for /f "tokens=5" %%i in ('netstat -ano ^| findstr 8080') do ( taskkill /f /pid %%i )

方案二:Windows服务部署(推荐)

  1. 使用winsw工具创建服务:
    <!-- ruoyi-service.xml --> <service> <id>RuoYiAdmin</id> <name>RuoYi Admin Service</name> <description>RuoYi-Vue后端服务</description> <executable>java</executable> <arguments>-Xms512m -Xmx1024m -jar "C:\deploy\ruoyi-admin.jar"</arguments> <logmode>rotate</logmode> </service>
  2. 安装服务:
    winsw.exe install ruoyi-service.xml

4. 前端部署与Nginx配置

4.1 前端项目构建

  1. 安装Node.js 14+和Yarn
  2. 修改配置(ruoyi-ui/vue.config.js):
    devServer: { port: 80, proxy: { '/prod-api': { target: 'http://localhost:8080', changeOrigin: true, pathRewrite: { '^/prod-api': '' } } } }
  3. 执行构建:
    yarn install yarn build:prod

4.2 Nginx高级配置

完整nginx.conf配置示例

worker_processes auto; events { worker_connections 1024; use epoll; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml; server { listen 8800; server_name your-domain.com; # 前端静态资源 location / { root /path/to/ruoyi-ui/dist; index index.html index.htm; try_files $uri $uri/ /index.html; } # 后端API代理 location /prod-api/ { 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_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; } # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; access_log off; } } }

性能优化关键参数

  • worker_processes: 设置为CPU核心数
  • worker_connections: 每个worker的最大连接数
  • gzip: 启用压缩减少传输量
  • proxy_timeout: 调整API超时时间

5. 系统集成与验证

5.1 服务启动顺序

  1. Redis服务
  2. 后端Java服务
  3. Nginx服务

验证命令:

# 检查Redis redis-cli ping # 检查Java进程 jps -l # 检查Nginx tasklist /fi "imagename eq nginx.exe"

5.2 完整测试流程

  1. 验证API接口:
    curl -X GET "http://localhost:8080/captchaImage" -H "accept: */*"
  2. 访问前端页面:
    http://localhost:8800
  3. 登录测试(默认账号admin/admin123)

常见问题排查表

问题检查点解决方案
验证码不显示Redis连接检查密码和端口配置
接口404错误Nginx代理配置确认/prod-api路径匹配
静态资源加载失败文件权限确保IIS或Nginx有目录读取权限

6. 安全加固与维护

6.1 基础安全配置

  1. 修改默认密码:
    • Redis密码
    • 数据库密码(如果使用MySQL)
    • 管理员账号密码
  2. 禁用不必要的接口:
    # application.yml swagger: enabled: false
  3. 配置HTTPS(可选):
    ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;

6.2 日常维护脚本

日志清理脚本(clean_logs.bat):

@echo off forfiles /p "C:\logs" /m *.log /d -30 /c "cmd /c del @path"

服务监控脚本(check_service.bat):

@echo off sc query Redis_RuoYi | find "RUNNING" > nul if %errorlevel% neq 0 ( echo Redis服务未运行,正在启动... net start Redis_RuoYi )

数据库备份脚本(建议使用Windows任务计划定期执行):

mysqldump -u root -p your_password ruoyi > C:\backup\ruoyi_%date:~0,4%%date:~5,2%%date:~8,2%.sql
← 返回列表