前言
最近做dtu与plc对接,使用postman测试接口,返回200 。没有问题,但是使用设备测试一直返回400,记录一下排查过程
正文
一、接口测试返回

二、设备测试返回

三、查看nginx日志

如果一个http1.1的请求没有host域,那么server应该给client段发送400的状态码,表明这个请求server不能处理。而对于Nginx server来说,也遵循这样的方式,说明client发送了一个无效的请求,Nginx server无法处理,于是返回了400的状态码。
本次故障中,客户端的调用方式没有使用host 参数,传递了空的Host头给服务端,一旦Nginx设置了proxy_set_header Host $http_host,空Host头就传给了后端。然而,在http 1.1的规范中,Host只要出现空,就会返回400,所以出现了这个故障。
最后,重新修改发送规则如下:
在请求头中添加 host:127.0.0.1(自己ip)
3559

被折叠的 条评论
为什么被折叠?



