关于CDN某个地域节点访问异常有以下几种场景。
场景一:使用ping命令访问CDN加速域名失败。 场景二:源站更改文件后,从CDN节点中获取的仍是更改之前的文件。 场景三:访问CDN加速域名后获取的为非其站点文件内容。
问题原因 关于不同问题场景的问题原因如下。
场景一的原因如下。 本地网络异常。 节点网络异常或被攻击。 本地到运营商中间链路某路由节点故障。 场景二的原因如下。 刷新未生效。 读取的是本地浏览器缓存。 被本地运营商劫持。 场景三的原因如下。 访问的非CDN节点。 被某种原因劫持。
解决方案 以下是不同问题场景的解决方案。
场景一:使用ping命令访问CDN加速域名失败 排查加速域名是否在沙箱节点中,由于沙箱中的域名无法保证服务稳定性,所以会存在使用ping命令后,网络不通的情况,此时沙箱可能正在受到攻击。 检测访问的IP是否为CDN的节点IP。关于如何检测,请参考诊断工具。如果访问的节点不是CDN节点IP,请核实如下几种情况。 本地是否有开启代理软件,因为有些代理软件会强制更改访问域名的解析。 是否绑定Host文件,将加速域名强制解析到了某个IP。 本地存在DNS劫持,可以在本地开启杀毒安全软件,并且固定本地所使用的IP为223.5.5.5、114.114.114.114的DNS或者其他安全的DNS。如果劫持情况比较严重,并且无法解决,则需要向网络服务提供商投诉要求解决劫持。 在本地使用ping命令,连接该节点IP,以及使用站长工具(例如17ce.com或者听云平台)在全国探测该节点IP是否存在问题,即各个地区访问该节点均延迟均较大或者不通,本地也ping不通该节点,则该节点存在问题的可能性较大,该前提是域名确实不在沙箱中。 在本地的Windows主机使用tracert,或者在Linux主机使用traceroute,用来探测该IP并提供完整探测截图,根据得到的截图定位整个网络链路的问题点。 注:MTR信息判断方法如下。 目的节点丢包率为100%,并且从目的节点往前逐个检查,直到第一个开始丢包的节点(中间不能有丢包率为0%的路由节点),则第一个开始丢包的路由节点是问题路由的可能性较大。详细排查步骤,请参见ping丢包或不通时链路测试说明。 请阿里云技术支持进行排查,在此期间可更改本地DNS为其他DNS(例如223.5.5.5或者114.114.114.114),并刷新本地的DNS缓存,使其调度到其他正常的节点。
场景二:从CDN节点中获取的仍是更改之前的文件 检测访问的IP是否为CDN的节点IP。 根据CDN的配置,绑定CDN节点和源站。绑定源站测试时,请注意如下几点。 CDN的回源Host配置中,使用curl命令测试源站的命令如下。如果绑定Host文件,那么应该将CDN加速域名绑定Host到源站域名所解析出来的IP地址。 curl -H "Host:[$Domain_Name]" "[$Source_Station]" 注: [$Domain_Name]为CDN加速域名。 [$Source_Station]为源站域名。 不同的回源端口得到的访问结果也可能不一样,分别测试得到Response Headers相关信息,判断访问的文件是否一致,主要判断以下几个方面。 注:如果以下三点存在任何一项不一致的情况,那么可认为源站和节点上文件的确不一致。如果都存在的情况下,则第三点最具备判断依据。 Content-Length大小是否一致。 Last-Modified的修改时间是否一致。 ETag和Content-MD5是否一致。
如果上述步骤确认后都无问题,最终在节点上获取的文件仍和源站文件不一致,建议刷新URL,等待约10分钟后再进行测试,如果多次刷新之后问题仍未解决,请提交工单。 注:刷新生效时间约为5~10分钟。
场景三:访问CDN加速域名后获取非其站点文件内容 检测访问的IP是否为CDN的节点IP。 排查CDN节点本身是否缓存了非用户站点上的文件。 排查客户端到CDN节点这段链路,具体方法如下。 打开Chrome浏览器的开发者工具,切换到Network,并在地址栏输入访问的URL。 单击访问的URL,查看实际的访问情况。查看报错request URl、remote ip、requestUrl,主要查看访问形式是否为http://x.x.x.x/cache/CDN。或者查看remote IP是否为CDN节点IP,如下图这种则是劫持。此时,需要联系其本地运营商投诉处理,解除劫持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。