nginx反向代理失效问题

vue+springboot的前后端分离项目,前端开发环境下使用vue的proxy访问后端接口成功,但是部署到nginx的时候反向代理的proxy_pass就失效了。

nginx反向代理失效问题

nginx配置文件如图,8280是前端vue项目的端口,vue项目可以正常打开。8080是后端tomcat服务器的端口,tomcat也运行正常。
已经确认匹配到了/api/,我在这个模块里写return是可以返回到的。但是vue项目的axios请求无论如何都不会走8080端口,而是在继续请求8280端口导致404。

nginx反向代理失效问题

打码部分是我服务器的公网IP,不清楚为什么vue项目的axios请求会是这个样子。
前端小白,请问这里到底是nginx配置的问题,还是说vue项目里本身需要额外的配置呢?几年前做过一样的项目但是当时记得是注释掉vue所有的proxy然后直接走nginx就行了,现在完全搞不通了。

补充一下这是devServer的配置,我把里面内容全部注释掉了,vue项目这里应该进行怎么样的设置呢?
nginx反向代理失效问题


回答:

这样配置访问http://localhost:8280/api/login,nginx是会代理请求到,
http://localhost:8080/login的。

出现404应是你后端http://localhost:8080/login返回的404状态,

先确认http://localhost:8080/login是否能正常访问,在nginx所在的服务器curl测试。
与查http://localhost:8080/的主机访问日志,确认8280是否有请求到8080所在的主机,访问到的是哪些地址,与状态码。

通常反向代理都设置,
proxy_set_header Host
以确认前端能正确请求到后端相应的主机上。


回答:

继续走 8280 是对的。

proxy_pass 是隐式的,前端无感知。

你这里没有放 devServer 配置,盲猜 proxy_pass 也加上 api/

以上是 nginx反向代理失效问题 的全部内容, 来源链接: utcz.com/p/937338.html

回到顶部