客户端错误日志
[21:55:41] [WARN] [VideoApi] GET request to /video/wait-download timeout after 30 seconds
初步排查
A同事和B同事在北京都遇到了这个问题,我在保定没有遇到这个问题,所以基本判断是北京到上海的网络出现了问题。那么需要验证这个问题
- 从网络上没差到相关公告,并且反馈给阿里云,阿里云告知并未出现
- A同事的 ping 信息正常
- traceroute -n 47.101.156.168 信息也正常
开始陷入了僵局,开始猜测怀疑方向错误,登陆A同事的账号,发现遇到类似问题,开始感觉不是网络的问题
定位问题
- 那么请求到底有没打到nginx上呢? 连上nginx 服务器,查看 nginx 日志,发现关键信息
2026/01/25 16:07:40 [warn] 9#9: *1889 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/0/06/0000000060 while reading upstream, client: 101.19.115.189, server: api.xxxxx.com, request: “GET /api/v2/xxxx/xxxx HTTP/1.1”, upstream: “http:///api/v2/xxxxx”, host: “api.like-sports.com”
- 问了下AI,AI的答复如下,那么说明该情况会影响性能,所以应该不是这里的问题,那么确实也没其他地方可以怀疑,所以按照AI的建议改缓存大小,问题解决
我分析了这个警告信息。这个警告表明 /api/v2/xxx 接口返回的响应太大,超过了 Nginx 的代理缓冲区大小,导致 Nginx 将响应数据临时写入磁盘文件。这会影响性能。 问题原因:
结束
虽然写磁盘文件虽然影响性能,应该也不致于30s 搞不定, 灵光一闪想到,这个nginx 是基于docker ,应该是没有挂在临时文件存储的位置,导致临时文件写不进去,然后超时了。