记一次生产中请求返回报文RST,异常问题(有网络拓扑图和抓包分析)

在一次生产请求过程中,App不定时收到不完整请求报文。通过网络拓扑和抓包分析,排除了加解密、网络抖动和Nginx配置问题。进一步排查发现,Nginx集群的响应报文在未接收完成时出现RST。检查日志后,定位到问题为nginx的数据缓冲区proxy_temp权限不足,由于误操作被设置为root所有。修复权限问题后,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络部署情况如图

一次请求的流程

1.app将请求报文加密后发送,经过F5(进行IP分发)给对应的Nginx集群

2.Nginx对应配置进行转发到不同的服务提供区,到服务区后F5设备继续进行规则分发,分发到对应移动后端服务器

3.移动后端会将信息解密后进行api转发,给具体的数据侧服务器

4.数据侧服务器收到请求后处理,进行链路的响应。

 

问题: 发现App收到的请求不定时出现不完整

排查步骤

1.确保不是加解密请求问题,确保代码的正确性,确保不是程序问题

2.排查网络抖动情况和nginx对应配置

3.检查出错时的网络情况

经以上检查都没有问题。

猜测出现在中间件的环境问题。

经对各链路进行抓包后发现,app服务侧的前置Nginx的响应报文在没有接收完就出现了RST报文。

定位到问题出现位置后,进行了该位置的Nginx集群的配置检查,发现配置也没有问题。

继而进行了日志的检查,发现失败请求日志,提示nginx的数据缓冲区proxy_temp权限不够。

检查该文件发现执行权限为root,不是nginx。成功定位到问题(后期发现是有一次维护时,相关人员误操作导致)

 

解决方案:修改缓冲区权限即解决

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值