若依部署实战(二):Windows服务器下Nginx反向代理与前后端分离应用配置详解

发布时间:2026/7/14 23:39:13

若依部署实战(二):Windows服务器下Nginx反向代理与前后端分离应用配置详解 1. 环境准备与基础配置在Windows服务器上部署若依前后端分离项目前需要先搭建好基础运行环境。我建议使用Windows Server 2019/2022这类服务器专用系统相比桌面版系统更稳定高效。以下是必备组件清单JDK 1.8推荐使用OpenJDK 11 LTS版本实测性能提升约20%MySQL 5.7若依官方推荐5.7版本注意要开启大小写敏感设置Redis 5.0用于会话管理和缓存Windows版可直接下载微软维护的安装包Nginx 1.20选择Stable版本解压即用无需安装这里有个容易踩坑的地方路径中不要包含中文或空格。我遇到过因为Program Files路径中的空格导致Nginx启动失败的案例。建议将所有组件安装在类似D:\Server这样的纯英文路径下。配置环境变量时记得将JDK的bin目录如D:\Server\jdk-11\bin加入系统PATH。验证安装是否成功java -version nginx -v redis-cli ping2. 后端项目部署实战2.1 数据库配置技巧首先导入若依的SQL脚本通常位于/sql目录。建议先用Navicat等工具检查SQL文件编码避免因UTF-8 BOM头导致导入失败。关键配置点在application-druid.ymlspring: datasource: druid: master: url: jdbc:mysql://localhost:3306/ry-vue?useSSLfalseallowPublicKeyRetrievaltrue username: root password: YourStrongPassword123!如果遇到时区问题可以在url后追加serverTimezoneAsia/Shanghai。生产环境务必修改默认密码并创建专用数据库用户而非直接使用root。2.2 打包与运行优化使用Maven打包时建议添加生产环境profilemvn clean package -Pprod -DskipTests生成的ruoyi-admin.jar可以通过以下命令启动java -Xms512m -Xmx1024m -jar ruoyi-admin.jar --spring.profiles.activeprod为了让服务在后台稳定运行可以创建start.bat脚本echo off start RuoYi javaw -Xms512m -Xmx1024m -jar ruoyi-admin.jar --spring.profiles.activeprod exit3. 前端项目部署要点3.1 构建生产版本在ruoyi-ui目录下执行构建前需要检查两个关键文件vue.config.js中的publicPath应设置为./.env.production中的API地址要改为后端服务地址构建命令npm install --registryhttps://registry.npmmirror.com npm run build:prod构建完成后会生成dist目录将其完整复制到服务器的D:\www\ruoyi-ui目录。注意保持目录结构不变特别是static文件夹的位置。4. Nginx反向代理精讲4.1 核心配置解析在nginx.conf中配置server块时这几个参数需要特别注意server { listen 80; server_name your-domain.com; # 前端静态资源 location / { root D:/www/ruoyi-ui/dist; try_files $uri $uri/ /index.html; index 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; # 重要解决413请求实体过大问题 client_max_body_size 100m; # WebSocket支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }4.2 性能优化参数在http块中添加这些配置可以显著提升性能# 启用gzip压缩 gzip on; gzip_min_length 1k; gzip_types text/plain application/javascript application/x-javascript text/css; # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control public; }5. Windows服务化与运维5.1 注册为系统服务使用NSSM工具将Nginx和Java应用注册为服务# 安装Nginx服务 nssm install Nginx D:\Server\nginx\nginx.exe # 安装Java服务 nssm install RuoYi D:\Server\jdk-11\bin\java.exe -jar D:\www\ruoyi\ruoyi-admin.jar服务注册后可以通过services.msc图形界面或sc命令管理服务状态。5.2 防火墙配置确保防火墙放行相关端口New-NetFirewallRule -DisplayName RuoYi-HTTP -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow New-NetFirewallRule -DisplayName RuoYi-Backend -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow6. 常见问题排查指南页面刷新404确保Nginx配置中有try_files $uri $uri/ /index.html接口502错误检查后端服务是否正常运行以及proxy_pass地址是否正确静态资源加载失败确认root路径是否正确路径分隔符要用/而非\上传文件大小限制Nginx中配置client_max_body_sizeSpringBoot中配置spring.servlet.multipart.max-file-size7. 安全加固建议修改默认的/prod-api路径为自定义路径配置HTTPS证书可以使用Lets Encrypt免费证书定期备份数据库和上传目录限制管理后台访问IPlocation /admin { allow 192.168.1.100; deny all; }在实际项目中我还遇到过因Windows权限问题导致Nginx无法读取静态资源的情况。这时需要给IIS_IUSRS用户组赋予对应目录的读取权限。

相关新闻