client prematurely closed connection

这个异常,请求返回状态是500,nginx中的status是400。

问题描述:

项目里面一个分享接口。

使用公司内网访问ios、安卓、浏览器都可以访问通。

如果使用互联网访问,安卓、浏览器可以访问通,但ios不行,但其他接口ios访问都没有问题。

问题出现之后,感觉有点诡异。之前没有遇到这种情况,所以一点一点的排查分析。

访问端:排除ios手机的问题,因为如果是手机问题,接口都应该不能访问。

服务端:查看日志,请求只到了nginx反代服务器,没有分发到后面的应用服务器(日志没打印),于是可以排除是项目代码的问题。

问题就是出现在请求到nginx之间(access.log日志打印,status为400)。

按照度娘上nginx出现400的原因,分析一遍之后,发现并没有解决问题。

至此,我想到极大可能是网略方面出现了问题。

于是找网略组同事开始抓包分析,最终找了原因,是因为WAF拦截了一个合作商的域名导致的。放开之后,接口正常访问了。

这次的问题,是安全方面给拦截出现的,并不是程序本身问题。

如果有相同困惑的伙伴,可以看看是否是网路安全策略的问题。

posted on 2023-10-25 16:28  之之小侠  阅读(386)  评论(0编辑  收藏  举报