若依前后端分离框架部署Linux服务器
第一次使用若依框架进行部署Linux服务器,出现了很多的问题,也可能是自身对若依框架的不太熟悉导致接下来说一下我的部署
第一步:首先我们把我们的前端打包,如果不会打包的话若依官网有详细的说明----->若依前后端分离官网部署文档,打包完毕后找到dist文件夹,把dist文件夹上传到Linux中,下一步的nginx配置中需要这一条路径。
第二步:Linux系统需要我们配置nginx,nginx中配置同一路径prod-api的统一前缀。1nginx的nginx.config配置如下
。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; # 监听的端口
server_name 自己的服务器地址; # 域名或ip
location / { # 访问路径配置
root /usr/local/ruoyi/dist/;#若依的dist 根目录
try_files $uri $uri/ /index.html;
index index.html index.htm; # 默认首页
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
}
}
第三步:后台java代码打包
我这里打的是jar包,上传到Linux系统,然后运行jar包
nohup java -jar jar包名称 --server 端口号 >msg.log 2>&1 &
这条命令是运行jar包,设定运行后的端口号,后台运行,日志打印到msg.log;
第四步:我们现在测试一下链接是否可用
无法访问:但是发现在自己本地本地却能直接部署并且进行访问
看一下我们的url是prod-api,自己本地运行url是dev-api,这两个prod-api是正式部署后的,dev-api是自己本地测试的,应该是没什么问题才对,于是进行了百度,查到了之前有同样的问题,但是解决方法没有,只有若依作者大佬写的是缺token
这就有点难受,现在是登录都登陆不上去,然后用postman进行了无数次的测试,发现问题在prod-api上面,java后台接收的url如果直接是login的话能跑通,但是如果是prod-api/login的话就不行,于是乎改后台的前缀,但是偶然间发现了一个参数,在我们的application.yml里面有个参数context-path,里面可以设置一级前缀,那么直接给这个参数赋值prod-api,就解决了,然后重新把控制台进行打包,部署,发现我们跑通了
- prod-api是部署后的统一前缀,部署服务器之前在本地测试的话是dev-api ↩︎