nginx配置程序,浏览器报错404

今天在用nginx时,前端和后端已经全都部署完成,但是数据无法交互,查看浏览器控制台,出现以下错误:

报错显示POST请求的路径出了问题,可以肯定不是前端的错误,然后把后端程序又看了一遍,用postman测试时发现这个地址找不到,也是报错,但是要是测试http://192.168.174.10:8080/spring12p0048n/users/login?username=admin&password=admin是可以成功的,这就可能是nginx配置文件的问题。我的配置文件如下:

/spring12p0048n/是我设的拦截器的访问方式

http://192.168.174.10:8080/是我访问的转发地址

根据错误应该是转发地址出了问题

首先我们来回顾下proxy_pass的语法:

转发地址url分为带/和不带/,带杠的为绝对根路径,会直接在路径后拼接上不带匹配路径的转发地址;如果没有杠表示相对路径,则会将匹配路径也带上进行转发,我们以举例http://192.168.244.21/user/index.html说明:

location /user/ {

    proxy_pass url;

}

1、当proxy_pass http://192.168.244.21:8080/ 时

会跳转至http://192.168.244.21:8080/index.html,带/表示绝对路径,匹配路径/user/会被消除

2、当proxy_pass http://192.168.244.21:8080 时

会跳转至http://192.168.244.21:8080/user/index.html,相对路径,匹配路径/user/不会被消除

3、当proxy_pass http://192.168.244.21:8080/admin/ 时

会跳转至http://192.168.244.21:8080/admin/index.html,匹配路径/user/被消除,并且保留转发路径里的/admin/

4、当proxy_pass http://192.168.244.21:8080/admin 时

会跳转至http://192.168.244.21:8080/adminindex.html,因为proxy_pass中也包含了/了,表示绝对路径,所以/user/会被消除

所以我要想访问http://192.168.174.10:8080/spring12p0048n/users/login?username=

admin&password=admin的话转发地址应该为http://192.168.174.10:8080/

所以修改nginx配置文件如下


修改完之后再次启动nginx,发现可以登录了

原文参考地址

https://blog.csdn.net/qq_24950043/article/details/135119687

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生533

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值