最近一段时间 pad 项目打开页面一直转圈,发现后端返回也不慢,但是很多时候接收不到请求不知道为什么?
后来跟踪日志才发现 nginx 一直提示
recv() failed (104: Connection reset by peer) while reading response header from upstream 错误。
也把 nginx 最大连接数调高了也不行。
1
knightdf 2022-09-17 11:33:29 +08:00
看后端有没有报错和其他超时
|
2
fggz 2022-09-17 16:43:36 +08:00
+1 一直报这个,还有 502 ,不过业务好像没有影响,一直没有找到原因。
|
3
eason1874 2022-09-17 22:17:47 +08:00
这种情况只调 nginx 没用,因为也有可能是后端重置的
|
4
corvofeng 2022-09-17 23:19:47 +08:00 via Android
|
5
cz5424 2022-09-18 09:42:53 +08:00
@corvofeng 我折腾了两天,发现了跟你同样的问题,我是盲猜 1.1 会 keepalive ,如果到 tcp timeout 就会把链接掐了,掐了的时候就返回 502
|
6
longmeier90 OP =============这是我的解决方案===========
1. [后端] nginx 连接数调高、buffer 缓存调大、keepalive 加了长连接 2. [后端] 增加后台服务进程数 3. [后端] 慢接口进行读写分离优化(分析错误日志,找到转圈时刻慢接口) 4. [后端] 增加自动访问接口提醒功能(每分钟) 5. [后端] 增加了调第三方服务超时时间 6. [前端] 优化了超时时间 30 秒改 10 秒 7. [前端] 优化了页面快速切换的重复请求 |