若依前后端分离部署(二级域名+反向代理+负载均衡)

前言:

最近使用若依前后端进行二次开发,在部署时遇到了一些问题,在此记录一些经验(仅记录学习和供参考,如果错误请指正,谢谢)


问题描述

由于服务器使用Nginx转发域名请求,无法使用根目录,于是在前端加入了二级目录,修改部分如下图:

若依前后端分离部署(二级域名+反向代理+负载均衡)_第1张图片

这里是前端入口地址,例如你的是localhost:8080/admin/

若依前后端分离部署(二级域名+反向代理+负载均衡)_第2张图片

这里修改的是退出登录后的页面

若依前后端分离部署(二级域名+反向代理+负载均衡)_第3张图片

修改完之后就是打包部署了,前端打包在控制台输入npm run build:prod,打包完成后将项目目录里的dist文件夹复制到服务器目录下

在这里插入图片描述

后端则通过maven打包,将ruoyi-admin文件夹下的ruoyi-admin.jar复制到服务器

若依前后端分离部署(二级域名+反向代理+负载均衡)_第4张图片

接下来是Nginx的配置,打开nginx.conf,加入以下配置

若依前后端分离部署(二级域名+反向代理+负载均衡)_第5张图片

location的作用,alias后面是前端文件路径,表示静态文件通过该ip端口下的/admin进行访问,try_files配置作用是防止页面刷新导致的404,index配置表示前端入口为index.html。
error_page作用为页面发生异常时所展示页面。

由于需要通过域名代理,所以在域名绑定的server里加入以下配置,此时proxy_pass
http就是上图的ip和端口,以及加入prod-api的配置,防止前端就着域名请求后端访问不存在

若依前后端分离部署(二级域名+反向代理+负载均衡)_第6张图片
若依前后端分离部署(二级域名+反向代理+负载均衡)_第7张图片

如果需要做负载均衡的加入以下配置,分别是两个节点的ip:端口,可自主配置权重

若依前后端分离部署(二级域名+反向代理+负载均衡)_第8张图片

nginx.conf配置修改完成后保存,重启Nginx,进入/nginx/sbin文件夹,命令为nginx -s reload

最后通过 nohup java -Dserver.port=23080 -jar ./ruoyi-admin.jar> nohup.out 2>&1 & 启动后端项目

可以通过观察nginx的访问日志来看负载均衡的结果

你可能感兴趣的:(负载均衡,nginx,前端,服务器,后端)