阅读 832

Nginx反向代理部分接口出现404报错

一、背景

前端和后端部署在不同的服务器,在前端服务器使用Nginx做反向代理访问后端,但有部分接口出现404报错,如图:

1.png

二、原因

数据集PID86.10358.231/fb514791-87e0-4168-8500-ff8d05add62c,含有特殊字符"/",

在没有代理的情况下,前端会把特殊字符"/"转义为"%2F",生成的URL为:

http://202.38.77.91/api/v3/Datasets/86.10358.231%2Ffb514791-87e0-4168-8500-ff8d05add62c/thumbnail 复制代码

但Nginx拦截了该URL,并在反向代理时,解释转义字符,URL就变成了:

http://192.168.123.21:3000/api/v3/Datasets/86.10358.231/fb514791-87e0-4168-8500-ff8d05add62c/thumbnail 复制代码

后端没有这个接口http://192.168.123.21:3000/api/v3/Datasets/86.10358.231/,出现404报错。

三、解决

需要在Nginx配置文件中,加一个特殊的拦截规则:

location /api/v3/Datasets/86.10358.231/ {           proxy_pass http://192.168.123.21:3000/api/v3/Datasets/86.10358.231%2F/   } 复制代码

四、总结

这种情况并没有普遍性,在此只是做个记录。


作者:用户9874739818067
链接:https://juejin.cn/post/7035897359368192007

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐