nginx反向代理失效问题

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

nginx配置文件

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

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

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

阅读 6.8k
2 个回答

这样配置访问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/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题