一、问题说明
运营反馈近期客户端页面加载变慢,经常需要10~20s以上的时间才能显示出,甚至加载不出来,需要手动退出,重新打开才能出现。
二、问题分析
- 首先怀疑是DNS问题,用的是运营商的作为首选DNS,修改成114.114.114.114 没有效果。
- 通过输出请求连接返回时间,发现部分 https 资源访问极慢,切换到 http 地址,访问变快
- 初步怀疑是 ssl 证书引起的,测试发现,加载缓慢的https地址的证书都是 digicert 的,证书校验ocsp地址为 http://ocsp.digicert.com,通过chinaz 检测,目前这个地址国内访问很慢
- 通过替换加载链接:https://www.baidu.com/ (GlobalSign证书) https://suowo.cn/ (Digicert证书, oscp地址与我们相同) 验证。 百度加载很快,suowo.cn 的表现和我们一致,加载需要很久,基本确认就是证书的问题。
三、解决方案
- 方案一: 目前我们使用的是在阿里云上申请的单域名免费证书,只有 Digicert 的国外验证地址可选。 考虑替换国内 ocsp 验证的收费证书。
- 方案二:客户端临时替换成加载 http 页面,根据页面来切换请求的地址是 http/https。
- 方案三:开启nginx 和 cdn 的 OCSP stapling, 由于国内cdn节点访问 ocsp 地址也很慢,经过验证,还是会间歇性访问超时