如何检查客户端请求时间过长
1. 运行环境
采用go beego 做的Api 处理
采用nginx 做的反向代理(主要为了处理https 请求)
3). 当前系统
CentOS 8
4). 业务环境
生产环境
2. 问题描述
公司的一台主机(机房里)上配置了两个网卡,要求提供一个api接收文件并上传到云对象存储,要保证有一个内网的网卡接收上传的文件,用另一个网卡上传文件。
目前我使用谷歌浏览器上传4M的视频的需要50多秒的请求时长,有时候又不到1S,换Safari 浏览器只需要800毫秒-3秒,而我在postman中上传该文件则只需要1000+ms。
谷歌浏览器
Safari 浏览器
postman
目前尝试过
查看nginx 日志,发现日志是正常的
采用其他格式大小的文件上传,出现一样的情况 //排除文件问题
将https 换过http 请求 //排除SSL问题
公司不同的同事上传相同大小的文件,相同的浏览器 // 上传时间大家不一样
采用谷歌浏览器调用别的上传文件api(不是内网)依然需要等待50S,清空了一遍谷歌浏览器的文件缓存+开启了内存节省程序,问题依然存在
go bee 运行日志如下
2023/05/11 21:31:07.157 [D] [server.go:2887] | 192.168.2.183| 200 | 106.366µs| nomatch| OPTIONS /ad/lianshan_receive
2023/05/11 21:31:59.555 **[D]** [server.go:2887] | 192.168.2.183| 200 | 487.035404ms| match| POST /ad/lianshan_receive r:/ad/lianshan_receive
请问如何将上传时间稳定到1S以内,或者如何排查这类问题,谢谢大佬们!
你不说图片视频的大小我们很难帮你分析
如果用户可以访问外网的话,大文件最好是前端用临时授权key之类的直接上传到服务器。通过服务器再上到oss不是很好