1、故障类型及可能原因
访问异常
域名未接入CDN:如果刚在控制台添加加速域名,在进行配置CNAME解析前的测试阶段,可能会出现此情况,此时应忽略该步骤,按照快速入门流程进行配置,若确认已正确配置CNAME记录,还需检查同一解析线路下该域名上一记录类型的TTL时间,新添加的CNAME记录需在上一记录类型的本地TTL缓存时间过期后才会正式生效。
源站配置错误:登录CDN控制台,在域名基本配置中检查源站的配置是否为该域名的源站服务器,如果不是,需修改成对应的服务器IP或域名。
账户欠费:当账户欠费进入保留期后,系统将停用加速域名,导致无法使用CDN服务,可前往费用中心查看账户费用信息,并通过充值来核销欠款。
状态码异常
4xx状态码:如404表示源站资源缺失、CDN域名配置异常;403表示域名未接入CDN加速、源站故障、CDN域名设置了拦截等。
5xx状态码:通常是源站业务故障、CDN域名配置异常、源站拦截、CDN节点异常等原因导致。
301/302状态码:可能是回源方式和强制跳转配置有误。
缓存问题
缓存规则设置有误:可能导致接入CDN后网页显示的内容、下载的文件、播放的视频不正确。
本地缓存问题:浏览器或客户端可能存在本地缓存,影响内容的正常显示。
资源更新后节点未刷新:源站资源更新后,如果没有及时提交刷新请求,CDN节点缓存的内容可能不会立即更新,导致用户访问到旧的内容。
访问速度慢
未命中CDN缓存:可能是由于缓存规则设置不合理、源站动态资源占比高、网站访问量低等原因导致。
跨运营商和跨省访问:如果用户与源站之间存在跨运营商或跨省的网络访问,可能会影响访问速度。
客户端网络问题:客户端的网络状况不佳,如带宽不足、网络延迟高等,也会导致访问速度慢。
流量命中率偏低
源站问题:源站设置不缓存、动态资源占比高、网站访问量低、源站故障等都可能导致流量命中率低。
CDN问题:缓存规则设置不合理、频繁执行缓存刷新等操作会影响流量命中率。
2、排查方法
检查域名解析:以Windows操作系统为例,打开cmd程序,输入“nslookup -qt=cname 加速域名”,如果返回结果显示CNAME,则表示CNAME配置已经生效;如果返回结果没有“.c.cdnhwc1.com”,说明域名未解析到华为云CDN。
排查CDN状态码和域名配置:根据返回的状态码,参照相应的排查思路进行处理,域名经过CDN加速后返回4xx,需检查源站资源是否存在、CDN域名配置是否正确等;返回5xx,需检查源站业务是否正常、CDN节点是否有异常等。
检查源站配置:登录CDN控制台,在域名基本配置中检查源站的配置是否正确。
检查账户余额:前往费用中心查看账户的费用信息,确保账户余额充足。
使用诊断工具:在客户端使用华为云CDN用户诊断系统,输入加速域名,单击检测,并将结果截图提供给客服或技术支持人员。
3、解决措施
针对访问异常
正确配置域名解析:按照华为云CDN的要求,正确配置域名的CNAME记录,并等待TTL时间过期后生效。
修改源站配置:在CDN控制台的域名基本配置中,将源站配置修改为正确的服务器IP或域名。
充值账户:如果账户欠费,及时充值以恢复CDN服务。
针对状态码异常
根据具体状态码处理:如404错误,需检查源站资源是否缺失,并正确配置CDN域名;403错误,需检查域名是否接入CDN加速、源站是否故障、CDN域名是否设置了拦截等。
针对缓存问题
调整缓存规则:根据实际情况,合理设置缓存规则,包括缓存过期时间、缓存键值等。
清理本地缓存:指导用户清理浏览器或客户端的本地缓存。
提交刷新请求:当源站资源更新后,及时提交刷新请求,使CDN节点缓存的内容得到更新。
针对访问速度慢
优化缓存规则:根据网站的业务特点和用户访问情况,调整缓存规则,提高缓存命中率。
选择合适的节点:如果存在跨运营商或跨省访问的问题,可以考虑选择更合适的CDN节点,或者使用华为云CDN的智能调度功能,自动为用户选择最优的节点。
优化客户端网络:建议用户优化自身的网络环境,如增加带宽、更换网络设备等。
针对流量命中率偏低
优化源站设置:根据源站的实际情况,合理设置缓存策略,减少动态资源的生成,提高网站的访问量。
调整CDN缓存规则:避免频繁执行缓存刷新操作,合理设置缓存规则,提高CDN节点的缓存命中率。
4、相关问题与解答
问题一:如何判断华为CDN故障是由源站还是CDN节点引起的?
解答:可以通过检查CDN返回的状态码来判断,如果是4xx或5xx状态码,且源站正常,那么可能是CDN节点的问题;如果源站无法访问或返回错误信息,那么可能是源站的问题,还可以通过对比不同地区的访问情况来判断,如果只有部分地区访问异常,那么可能是CDN节点的问题;如果所有地区都无法访问,那么可能是源站的问题。
问题二:华为CDN故障排查时,如何确定是否是缓存问题导致的?
解答:可以先检查缓存规则是否设置正确,是否符合网站的业务需求,然后查看CDN节点的缓存命中率,如果缓存命中率较低,可能是缓存规则设置不合理或者缓存未生效,还可以尝试清理本地缓存,或者在源站资源更新后提交刷新请求,观察是否能解决问题,如果以上操作后问题仍然存在,那么可能是其他原因导致的故障。