1. 问题现象
前几天线上设备出现奇怪的现象,部分终端使用UC浏览器访问部分网站无法弹出portal或弹出portal比较慢,但是其他大部分终端访问却可以正常弹出portal,真是莫名其妙,到底是怎么回事?
2. 现象分析
刚开始本地尝试复现,但是一直没有出来,线上又不好分析,一度陷入了死局。
后来想起之前有遇到过浏览器云端加速导致访问异常的情况,所以就怀疑是浏览器云端加速导致的,所以立即进行测试
a. 使用UC浏览器,开启云端加速,果然portal无法弹出或弹出很慢,关闭后正常。通过抓包发现开启时,打开网站时,浏览器会主动向某些地址发送请求,端口是8081(我们是监控80端口进行弹portal的,8081请求,如果访问的域名或IP不在白名单中直接丢弃)。
b. 开启云端加速,将浏览器主动请求的地址加入白名单中,弹出portal正常。
这应该就确定跟云端加速时,主动访问其他域名非80端口时,报文被丢弃了,所以就让测试去搜集不同浏览器云端加速的域名了。
难道真的是这个原因吗?,如果你也这么想,那我们都是too young了!
另外一个同事,一直觉得不是这么简单,所以他后来又进行了深度的测试,详细分析了portal弹出失败时的报文,果然发现真的不是那么简单!
通过分析报文发现有两种情况:
1)将云端加速访问的域名加入白名单后,访问