我遇到了一个问题,有时候(虽然非常罕见,我无法复现),在向服务器发送请求时,收到的消息“request.data”是空的,并且响应中的请求头不包含 Nginx 的信息,但是状态码仍然是 200 。正常情况下,响应中会包含 Nginx 的参数,并且由于我使用的是 nestjs ,无论处理结果如何,都会统一格式化返回的数据,所以数据不可能为空 response.json({总是一个对象})
为了查明问题的原因,我使用了以下命令来查找文件中是否存在包含"requestproxy"的内容:
查找哪个文件有这个字段名(无收获)
find . \( -path ./sys -o -path ./proc \) -prune -o -type f -exec grep -q "requestproxy-ip" {} \; -print 2>/dev/null
查找高频率 ip (无收获)
find . \( -path ./sys -o -path ./proc \) -prune -o -type f -exec grep -q "9.141.233.128" {} \; -print 2>/dev/null
无论请求是否报错,正常响应中的请求头都应该包含以下内容:
server: nginx
x-powered-by: Express
正常情况下,返回的数据( data )永远不会为空,因为 nestjs 都会格式化返回的数据。
request.data.xxx // 不可能为空
返回 http 状态码为 200 和 request:'ok' 并且请求响应头中会包含以下信息(注意:server 和 x-powered-by 等信息不会包含在响应头中):
x-requestproxy-internal-501:1
x-requestproxy-ip:[ip,ip] // 总会出 2 个美国 IP
x-requestproxy-ssl-peer-failed-verifiaction:-1
9.141.233.128 // 这个出现频率好像挺高
9.141.177.175
9.141.140.10
9.141.140.228
9.141.142.146
9.141.176.16
9.141.176.2
11.151.86.163
异常情况下,data 为空,即 request.data='',没有任何内容返回。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.