前言:
最近使用若依前后端进行二次开发,在部署时遇到了一些问题,在此记录一些经验(仅记录学习和供参考,如果错误请指正,谢谢)
问题描述
由于服务器使用Nginx转发域名请求,无法使用根目录,于是在前端加入了二级目录,修改部分如下图:
这里是前端入口地址,例如你的是localhost:8080/admin/
这里修改的是退出登录后的页面
修改完之后就是打包部署了,前端打包在控制台输入npm run build:prod,打包完成后将项目目录里的dist文件夹复制到服务器目录下
后端则通过maven打包,将ruoyi-admin文件夹下的ruoyi-admin.jar复制到服务器
接下来是Nginx的配置,打开nginx.conf,加入以下配置
location的作用,alias后面是前端文件路径,表示静态文件通过该ip端口下的/admin进行访问,try_files配置作用是防止页面刷新导致的404,index配置表示前端入口为index.html。
error_page作用为页面发生异常时所展示页面。
由于需要通过域名代理,所以在域名绑定的server里加入以下配置,此时proxy_pass
http就是上图的ip和端口,以及加入prod-api的配置,防止前端就着域名请求后端访问不存在
如果需要做负载均衡的加入以下配置,分别是两个节点的ip:端口,可自主配置权重
nginx.conf配置修改完成后保存,重启Nginx,进入/nginx/sbin文件夹,命令为nginx -s reload
最后通过 nohup java -Dserver.port=23080 -jar ./ruoyi-admin.jar> nohup.out 2>&1 & 启动后端项目
可以通过观察nginx的访问日志来看负载均衡的结果