场景一:在特定网络下才访问异常(切换Wi-Fi/移动网络、关闭代理软件可恢复正常访问)
可能的原因及排查思路:
- 本地网络异常。
- 确认客户端本地网络环境是否正常。例如,可通过浏览器访问百度页面,或者使用在线诊断工具,确认客户端自身网络环境是否正常。如访问百度或其他网站均正常,说明本地网络正常。
- 对应网络环境的出口IP被源站或CDN节点封禁。
- 绑定源站访问测试。通过修改HOSTS文件的方式绑定源站访问看是否可以正常请求,如果无法请求则表明源站对该出口IP做了封禁处理。
- 如测试源站未封禁该出口IP,请联系火伞云客服进行排查,确认CDN节点是否有对应封禁策略,在此之前请通过ipip或者站长之家等工具获取本地的出口IP。
场景二:单区域多用户反馈访问异常,或使用ping命令ping CDN节点存在节点不通、丢包严重的情况
可能的原因及排查思路:
- 本地或区域性网络异常。确认客户端本地网络环境是否正常。例如,可通过浏览器访问百度页面,或者使用在线诊断工具,确认客户端自身网络环境是否正常。如访问百度或其他网站均正常,说明本地网络正常。
- CDN节点网络异常或被攻击。
- 测试节点的网络情况。在本地使用ping命令,测试该节点IP,以及使用站长之家工具在全国探测该节点IP是否存在问题,若各个地区访问该节点延迟均较大或者不通,本地也ping不通该节点,则该节点存在问题的可能性较大。
- 测试节点的端口情况。使用telnet客户端工具,测试节点对应端口是否有效,如若出现端口不通的情况,请联系火伞云客服进行排查。
- 本地或本区域到CDN节点的中间链路某路由节点故障。
- 在本地的Windows主机使用tracert,或者在Linux主机使用traceroute,探测该CDN节点IP并提供完整探测截图,联系火伞云客服进行排查。在此期间可更改本地DNS为其他DNS(例如223.5.5.5、114.114.114.114或119.29.29.29),并刷新本地的DNS缓存,使其调度到其他正常的节点。
场景三:源站更改文件后,从部分CDN节点中获取到的,仍是旧文件
可能的原因:
- 未提交刷新任务或刷新任务未生效。源站文件更新后,CDN节点不会自动刷新缓存,需要等缓存时间过期后,才会回源站做更新校验,此时如未提交刷新任务,或刷新任务未生效,可能会导致部分节点访问到的仍是旧文件。该场景下,建议在CDN控制台刷新对应URL,待5-10分钟刷新生效后再进行测试。如果多次刷新之后问题仍未解决,请联系火伞云客服进行排查。
- 源站文件未同步。如已提交刷新任务且显式刷新成功,则考虑是否存在多个源站,或源站存在多个端口,不同源站或端口返回内容不一致导致。可以绑定不同源站及源站端口分别进行测试,基于返回的Response Headers相关信息以及文件md5值,判断文件是否一致。相关响应头为:Content-Length、Last-Modified、Etag,如果上述3个响应头任何一项的值不一致,或即使一致但文件md5值不同,则说明不同源站或端口文件存在不一致。此时对比CDN节点上获取到的旧文件相关响应头或md5与某个源站或源站端口一致,说明该问题由源站或端口内容未做同步造成,需要调整源站文件同步机制,确保多源一致。
- 本地浏览器缓存。判断浏览器是否开启缓存。以Chrome浏览器为例,打开浏览器的开发者模式,选择网络(Network),当勾选了“停用缓存”则表明浏览器不会缓存,反之则会缓存。打开开发者工具的情况下访问对应链接,当启用缓存的时候,文件的大小就会如下图所示,显示为(ServiceWorker)、(disk cache)、(内存缓存)等字眼。
可以通过如下方式清除浏览器缓存。
- 发生劫持。排查客户端到CDN节点这段链路,具体方法如下:
- 打开浏览器的开发者工具,切换到Network,并在地址栏输入访问的URL。
- 单击访问的URL,查看实际的访问情况。查看报错request URl、remote ip、requestUrl,主要查看访问形式是否为http://1.1.1.1/URL,或者查看remote IP是否为CDN节点IP。如果发现存在302到非CDN节点的链接,需要联系本地运营商投诉处理,解除劫持;如果发现无302但请求到非CDN的节点IP,可以尝试修改DNS地址后再次测试。