CDN某个地域节点访问异常的解决方法

CDN某个地域节点访问异常的解决方法

问题描述

关于CDN某个地域节点访问异常有以下几种场景。

  • 场景一:使用ping命令访问CDN加速域名失败。
  • 场景二:源站更改文件后,从CDN节点中获取的仍是更改之前的文件。
  • 场景三:访问CDN加速域名后获取的为非其站点文件内容。

 

问题原因

关于不同问题场景的问题原因如下。

  • 场景一的原因如下。
    • 本地网络异常。
    • 节点网络异常或被攻击。
    • 本地到运营商中间链路某路由节点故障。
  • 场景二的原因如下。
    • 刷新未生效。
    • 读取的是本地浏览器缓存。
    • 被本地运营商劫持。
  • 场景三的原因如下。
    • 访问的非CDN节点。
    • 被某种原因劫持。

 

解决方案

以下是不同问题场景的解决方案。

 

场景一:使用ping命令访问CDN加速域名失败

  1. 排查加速域名是否在沙箱节点中,由于沙箱中的域名无法保证服务稳定性,所以会存在使用ping命令后,网络不通的情况,此时沙箱可能正在受到攻击。
  2. 检测访问的IP是否为CDN的节点IP。关于如何检测,请参考诊断工具。如果访问的节点不是CDN节点IP,请核实如下几种情况。
    • 本地是否有开启代理软件,因为有些代理软件会强制更改访问域名的解析。
    • 是否绑定Host文件,将加速域名强制解析到了某个IP。
    • 本地存在DNS劫持,可以在本地开启杀毒安全软件,并且固定本地所使用的IP为223.5.5.5、114.114.114.114的DNS或者其他安全的DNS。如果劫持情况比较严重,并且无法解决,则需要向网络服务提供商投诉要求解决劫持。
  3. 在本地使用ping命令,连接该节点IP,以及使用站长工具(例如17ce.com或者听云平台)在全国探测该节点IP是否存在问题,即各个地区访问该节点均延迟均较大或者不通,本地也ping不通该节点,则该节点存在问题的可能性较大,该前提是域名确实不在沙箱中。
  4. 在本地的Windows主机使用tracert,或者在Linux主机使用traceroute,用来探测该IP并提供完整探测截图,根据得到的截图定位整个网络链路的问题点。
    注:MTR信息判断方法如下。
    • 目的节点丢包率为100%,并且从目的节点往前逐个检查,直到第一个开始丢包的节点(中间不能有丢包率为0%的路由节点),则第一个开始丢包的路由节点是问题路由的可能性较大。详细排查步骤,请参见ping丢包或不通时链路测试说明
  5. 请阿里云技术支持进行排查,在此期间可更改本地DNS为其他DNS(例如223.5.5.5或者114.114.114.114),并刷新本地的DNS缓存,使其调度到其他正常的节点。

 

场景二:从CDN节点中获取的仍是更改之前的文件

  1. 检测访问的IP是否为CDN的节点IP。
  2. 根据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是否一致。
  3. 如果上述步骤确认后都无问题,最终在节点上获取的文件仍和源站文件不一致,建议刷新URL,等待约10分钟后再进行测试,如果多次刷新之后问题仍未解决,请提交工单
    注:刷新生效时间约为5~10分钟。

场景三:访问CDN加速域名后获取非其站点文件内容

  1. 检测访问的IP是否为CDN的节点IP。
  2. 排查CDN节点本身是否缓存了非用户站点上的文件。
  3. 排查客户端到CDN节点这段链路,具体方法如下。
    1. 打开Chrome浏览器的开发者工具,切换到Network,并在地址栏输入访问的URL。
    2. 单击访问的URL,查看实际的访问情况。查看报错request URl、remote ip、requestUrl,主要查看访问形式是否为http://x.x.x.x/cache/CDN。或者查看remote IP是否为CDN节点IP,如下图这种则是劫持。此时,需要联系其本地运营商投诉处理,解除劫持。
    3. 我公司为阿里云代理商通过此页面下单购买,新老阿里云会员,均可享受我公司代理商价格!

 

阅读全文...

域名绑定Host操作步骤

域名绑定Host操作步骤

在排查CDN故障时,经常需要查看源站访问是否正常,或对比加速与未加速的访问效果。

本文介绍如何在不修改域名解析的情况下,将域名指向源站。

阅读全文>>

阅读全文...

无法访问ECS实例中运行的网站

无法访问ECS实例中运行的网站

本文主要介绍您无法访问ECS实例中运行网站时的排查方案。

无法访问ECS实例中运行网站的现象和原因较多,您可以选择下列方式进行处理:通过问题现象选择解决方案

 

阅读全文>>

阅读全文...

Windows系统实例中未指定远程桌面授权服务器解决方法

Windows系统实例中未指定远程桌面授权服务器解决方法

Windows 2008系统的ECS服务器通过远程桌面登录服务器时,提示“未指定远程桌面授权服务器”。

由于Windows Server 2008 R2默认安装了远程桌面角色,但该角色有120天免费使用期,到期后需要给微软付费购买授权。

授权远程桌面服务器有以下两种方法:

 

阅读全文>>

阅读全文...

通过脚本文件自动更新Linux实例中的软件源

通过脚本文件自动更新Linux实例中的软件源

本文主要介绍通过脚本文件更新Linux实例中的软件源的方法。

以下是通过脚本文件更新软件源的操作步骤。

 

阅读全文>>

阅读全文...

阿里云虚拟主机过期后怎样备份数据库数据?

阿里云虚拟主机过期后怎样备份数据库数据?

云虚拟主机过期15天后,系统将自动释放资源。

主机释放后数据将无法找回,且无法再进行续费。如需继续使用,请及时进行续费。

云虚拟主机到期后15天内,主机有以下变化:

 

阅读全文>>

阅读全文...

Linux实例中存在未正确挂载的磁盘

Linux实例中存在未正确挂载的磁盘

在Linux实例中如果未正确挂载磁盘,重启系统后可能导致系统无法正常启动。

已经设置了相关命令进行挂载,但是没有在/etc/fstab文件中配置自动挂载或配置出错。系统启动时就可能出现异常,导致启动失败。

 

阅读全文>>

阅读全文...

CentOS 7系统的云服务器ECS实例如何配置默认防火墙Firewall

CentOS 7系统的云服务器ECS实例如何配置默认防火墙Firewall

在Linux实例中如果未正确挂载磁盘,重启系统后可能导致系统无法正常启动。

本文主要介绍正确的挂载流程,您可以参考该流程进行操作。

已经设置了相关命令进行挂载,但是没有在/etc/fstab文件中配置自动挂载或配置出错。系统启动时就可能出现异常,导致启动失败。

 

阅读全文>>

阅读全文...