请求时好像是候绕过 Nginx 中间件导致参数缺失 - 如何排查并解决请求未经过 Nginx 的问题?

查看 16|回复 0
作者:nangdiea   
背景
  • 解析:百度服务器 + (腾讯云域名 + 自带免费解析)
  • 服务器端:linux + 用宝塔搭建(最新) + nginx + nestjs
  • 客户端:微信小程序 + uni-app

    描述问题
    我遇到了一个问题,有时候(虽然非常罕见,我无法复现),在向服务器发送请求时,收到的消息“request.data”是空的,并且响应中的请求头不包含 Nginx 的信息,但是状态码仍然是 200 。正常情况下,响应中会包含 Nginx 的参数,并且由于我使用的是 nestjs ,无论处理结果如何,都会统一格式化返回的数据,所以数据不可能为空 response.json({总是一个对象})
    以下是出现问题时的错误截图
  • 图片中显示 [4|200](其中 200 是状态码)( 4 表示重试了 4 次但仍然出错,当收到空数据时我会进行重试)。
  • 图片中的 xxx/user/token?t=${index} 表示 0-4 次请求(我怀疑这是缓存问题)。
  • 图片中的 "h":"xxx" 是响应请求头数据:h: result.headers 。
  • 图片中的 "s": request:ok 是响应的 msg:result.statusText 。


  • 经常会收到这个,导致无法正常使用,因为拿不到 token


    问题判断标准
  • 状态码是 200
  • 返回的 result.data 是空的(不可能空)
  • 响应请求头不包含 nginx 信息,只留下不知道哪里设置的信息 “x-request-xxx”

    尝试过的办法
  • 尝试打开 Nginx 日志进行查询,查看是否包含某个请求 t=x (t=x 前面讲了重试时会出现 0-4 ,确认请求没有经过 Nginx 处理)
  • 尝试在服务器文件中查找是否包含某个内容"x-requestproxy"(已排除 sys 和 proc 文件夹,但没有找到)
  • 腾讯域名解析已升级至企业版,仍然出现问题(这是我作为新手领取的免费版本)。
  • 问了 GPT 没解决,被气到了
  • 向腾讯云咨询了域名解析问题,也询问了服务器是否存在问题,但没有发现任何异常。

    为了查明问题的原因,我使用了以下命令来查找文件中是否存在包含"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
    另外,x-requestproxy-ip 中的某些 IP 出现频率较高,如:
    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='',没有任何内容返回。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部