
# 接入CDN后，访问速度仍然很慢
#### 问题现象
接入CDN加速后，用户访问网站或者APP资源依然很慢。
#### 排查思路
- 域名是否接入CDN加速
- 是否命中CDN缓存
- 是否跨运营商和跨省
- 缓存规则设置是否合理
- 加速资源是否预热
- 是否客户端网络问题
- 检查是否存在跨境访问
 
#### 排查步骤
1. **检查域名是否接入CDN加速**
   ![](https://support.huaweicloud.com/trouble-cdn/public_sys-resources/note_3.0-zh-cn.png)
   如果您刚在控制台添加加速域名，正在做配置CNAME前的[本地测试加速域名](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01018.html)工作，请忽略本步骤，参照[快速入门](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01013.html)流程配置即可。
   您需要检查域名是否解析到CDN，以Windows操作系统为例，打开cmd程序，输入如下指令：
   ```
   nslookup -qt=cname 加速域名
   ```
   如果返回结果显示CNAME，则表示CNAME配置已经生效，如下图：
   ![](https://support.huaweicloud.com/trouble-cdn/zh-cn_image_0000001161252749.png "点击放大")
   - 如果查询出的域名解析中没有上图红框中所示，后缀为**.c.cdnhwc1.com** 的CNAME解析记录，则说明您添加的域名的CDN加速未生效。此种情况下CDN加速未生效的可能原因是您没有在域名DNS服务商处配置CNAME记录，请根据[配置CNAME](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01021.html)内容指导前往您的域名DNS服务商处配置CNAME记录。
   
   - 如果您确认已正确配置CNAME记录，请检查同一解析线路下该域名的上一记录类型的TTL时间，TTL时间决定了解析记录在本地DNS服务器的缓存时间。您新添加的CNAME记录在上一记录类型的本地TTL缓存时间过期后才会正式生效。
    
2. **查看是否命中CDN缓存**
   在浏览器Chrome上，按F12，选择"Network"。查看指定URL的响应头，查看头部信息，进行如下判断：
   - 如果有"x-hcs-proxy-type"头部，值为"1"即命中缓存，值为"0"即未命中缓存，不再查看其它头部；
   
   - 如果无"x-hcs-proxy-type"头部，而有"X-Cache-Lookup"头部，值为"Hit From MemCache"、"Hit From Disktank"或"Hit From Upstream"即为命中缓存，其它值表示未命中缓存，不再查看其它头部；
   
   - 如果同时无"x-hcs-proxy-type"、"X-Cache-Lookup"头部，有"age"头部，则值大于"0"即命中缓存，值为"0"即未命中缓存。
    
   如果未命中缓存，请跳到[4. 检查缓存规则设置]查看缓存规则设置。
   如果命中缓存，请进入下一步分析。
   
3. **是否跨运营商和跨省**
   如果用户访问跨省和跨运营商，可能会影响访问速度，请按照以下步骤排查：
   1. 获取客户端IP、LDNS。
   
   2. 根据客户端IP和LDNS分析是否跨运营商和跨省。如果使用了代理，可能会出现跨运营商和跨省，影响访问效果。 示例1：用户在河北使用广电网络访问，但IP是北京联通，LDNS又是石家庄电信，访问速度就会较慢，跨运营商对网速的影响很大。
      示例2：用户在北京使用广电网络访问，但IP是北京联通，LDNS又是广东电信，用户访问加速域名时CDN调度系统会根据LDNS匹配最近的广东节点，导致访问速度较慢。
      
   
   3. 华为云CDN目前支持的运营商有电信、联通、移动、铁通、教育网、鹏博士等。
    
4. **检查缓存规则设置**
   - 检查所访问的资源对应的缓存规则，是否存在配置的缓存过期时间为0或者缓存过期时间过短的情况。CDN不缓存或者缓存过期时间过短会导致请求回源，无法达到加速效果。
   
   - 检查您的源站缓存设置，如果源站设置了no-cache、private、no-store，CDN侧同时开启了"缓存遵循源站"功能（此功能默认关闭），CDN将无法缓存源站资源，导致所有请求回源，无法达到加速效果。
   
   - 检查您设置缓存规则的优先级，数值越大优先级越大，系统会优先匹配。
   
   - 如果您的URL携带了参数，并且参数不断变化，当使用不同的URL去访问的时候，CDN会认为这是一个新请求（即使这两个不同的URL访问的是同一个文件，并且该文件已经缓存在节点上），依然会回源请求该资源。如果携带不同的参数的URL访问的是同一个资源，建议开启忽略URL参数功能，请参见[URL参数](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0116.html)。
   
   - 更多缓存设置请参考[如何设置缓存过期时间](https://support.huaweicloud.com/bestpractice-cdn/cdn_01_0133.html)。
    
5. **检查资源是否预热**
   如果您是首次访问某资源，且之前未对该资源做过预热处理，CDN节点会回源请求资源，首次访问速度慢属于正常。
   ![](https://support.huaweicloud.com/trouble-cdn/public_sys-resources/note_3.0-zh-cn.png)
   首次接入CDN后，建议您预热大文件或者视频，图片、小文件等不建议预热。
   
6. **检查客户端网络**
   ping CDN加速后访问依然较慢的域名，检查网络时延和丢包。如果网络时延大或者丢包严重，需要检查客户端网络接入问题。
   
7. **检查是否存在跨境访问**
   1. 仅开通了中国大陆境内加速：如果域名的服务范围为中国大陆，此时所有客户端请求均会调度到中国大陆的节点，此时中国大陆境外用户访问域名时，受跨境网络影响，加速效果不太明显，甚至无法访问。
   
   2. 源站位置和服务范围不一致：
      1. 如果域名的源站地址在中国大陆境外，服务范围为中国大陆，此时客户端请求回源时受跨境网络影响，加速效果不太明显，甚至无法访问。
      
      2. 如果域名的源站地址在中国大陆境外，服务范围为全球，那么中国大陆用户访问该域名下的资源时，将调度到中国大陆的节点，如果节点未缓存该资源，此时客户端请求回源时受跨境网络影响，加速效果不太明显，甚至无法访问。
       
    
如果排除以上几点后问题仍然存在，请联系客服或[提交工单](https://console.huaweicloud.com/ticket/?&locale=zh-cn#/ticketindex/createIndex)处理。
