记一次HTTP劫持故障排查

问题原由:公司某内部系统,产品反馈,客服使用过程速度变慢,跳转过程当中还会有一片留白页面出现php

一、实际排查发现,这个问题不是必现的,大概每点击5次会出现 2次;查看后台ng日志,发现大量499错误;ng 499错误,有两种状况,一是请求时间过长,客户端主动关闭链接,html

二是 同一个url请求间隔时间太短,直接被ng拒绝;随即检查ng配置,并对比了测试环境配置和正是环境配置(由于测试环境没有这个问题),前端

针对第一种状况,在测试环境特意sleep了10s;修改了某些配置,想屏蔽499错误;人有时候很奇怪,会刻意忽略某些状况,第一种排查完了以后,第二种就被忽略了;然而,一顿操做猛如虎,一看结果二百五;vue

 

二、引入外部某大神帮助,他提出多是php错误,由于499 还有一种状况会出现,那就是php-fpm进程数不够,恰好咱们线上环境由于某些缘由起了3个版本的php,后端

遂关闭了其中一个无用的php版本,并开启了线上php 慢日志查询,然而,查看进程数也足够,因此并阮;浏览器

 

三、既而后端问题没法定位,那么就找代码自己是否是有问题,一看代码是,由于是多人合做的缘由,有vue和jq混合,恰好查到由于某些状况这种混合编码可能会引发499错误,遂把vue代码所有删除,仍是同样;php-fpm

 

四、能想到的全部的状况都排查了,仍是无效,心里是奔溃的,然而天无绝人之路,点着点着,忽然发现,前端为何会连续请求了咱们同一个url 3次呢?想不明白,遂请求前端某大神帮助,他号称是世界上最温柔的男人;测试

一顿操做猛如虎,终于找到了,有段异常的js,flash.js ,上网找了一些文章,具体可查看 https://www.xuab.net/archives/36.html, 发现原来这个js在某些状况写会劫持咱们的url( 具体多是url中带// 的);编码

遂问网关,经确认网关那边确实有一套深信服的上网行为管理系统;这套系统在开启某些策略的状况,会在某些状况把这段js注入的咱们请求页面中,谷歌浏览器有开启拦截广告的插件,就有几秒钟的留白;网管关闭这个策略后,回复正常;url

 

总结,历时3个小时排查,终于找到问题,不容易;排查这类问题的时候,感受方向没找准,浪费了很多时间,一开始应该不要从后端啊,代码去排查,应该从最明显的地方,前端去找,把最明显的问题找到缘由,若是行不通,再一步步深刻

相关文章
相关标签/搜索