CDN相关常见问题

目录

1. 什么文件可以放在CDN上?

CDN是为了加速用户访问体验而设计的,所以存放在CDN上的文件应该都是小文件,大小最好不要超过500K。
存放文件的类型并没有限制,静态的图片如jpg、gif、png,flash文件,js和css文件等都可以存放在CDN上。

2. 有些CDN文件已经不再使用了,是否可以在服务器上将其删除?

腾讯采取的CDN方式是覆盖式的,对于以前上传的文件如果不再有新文件覆盖的话,会一直保留在CDN服务器上面。
如果您想将其删除:
1. 对于CDN_V1:到提单系统按照相关模版自助提交申请单,申请方式详见:这里
2. 对于CDN_V2:在CDN的SVN服务器上对目录进行删除操作并提交成功后,再在CDN文件发布页面点击“CDN文件生效”,即实现CDN目录或文件删除。
目录或文件的删除会有一定时间的延迟(延迟在1小时-1天之间),即用户在SVN服务器上删除并提交然后点击“CDN文件生效”后,系统实际上是先将CDN源站上的文件删除了,CDN源站会在一段时间内触发同步到各CDN节点,同步完成后,该目录或文件才被删除,不可访问。

3. 如何查看上传到CDN的文件?

1. 对于CDN_V1:可通过FTP上传通道将文件从本地上传到CDN,开发者可以使用FTP服务器自带的lftp命令查看目录及文件。
2. 对于CDN_V2:可通过SVN上传通道将文件从本地上传到CDN。开发者可以通过SVN客户端的“Repro browser”命令直接查看CDN SVN仓库里的目录及文件。

4. 可以对文件/目录进行重命名吗?

1. 对于CDN_V1:不支持目录或者文件名称的修改,只能新建一个目录或新上传一个文件。
开发者需要先在FTP服务器上重新创建一个目录,或者重新上传更名后的文件。
如果是直接在FTP上对目录或直接对文件名进行更名,是不会同步到CDN的

2. 对于CDN_V2:开发者在CDN的SVN服务器上对目录或文件名称修改并提交成功后(详见SVN使用指引),再在CDN文件发布页面点击“CDN文件生效”,即可将重新命名的目录或文件发布到CDN。
目录或文件名称更改后,相当于删除了原文件,创建了新文件,CDN上更名前的目录或文件路径变为无效,不可访问。

5. 如何判断用户访问的是哪个CDN节点?

当用户反馈文件加载慢或者访问出错时,如果应用的文件是部署在CDN上的,需要先获取终端玩家访问的CDN节点数据。
通过nslookup和ping应用相应的CDN域名可以获取用户访问的CDN节点的IP和延时丢包等基本的排错信息,如nslookup app31182.imgcache.qzoneapp.com

6. CDN节点文件访问慢怎么办?

可以进行如下排查:
1. 首先定位用户的网络质量是否正常。应用可以通过nslookup和ping应用相应的CDN域名获取用户访问的cdn节点IP(如nslookup app31182.imgcache.qzoneapp.com),在本地进行host的绑定测试(需要注意是否有跨运营商情况),如果测试正常,说明是用户的局部网络问题。
2. 如果测试结果确实缓慢,可以通过http://ut.qq.com/ 来测试访问其他主流站点的延时数据。
3. 如果访问其他站点正常,而访问CDN文件缓慢时,可以通过httpwatch抓取访问数据包,然后通过企业QQ联系运维支持协助定位。

7. CDN节点文件无法访问怎么?

可以进行如下排查:
1. 核实文件的url是否有误,可以通过检查svn的部署目录和文件名进行核对;
2. 如果上传的文件是新文件,一般10分钟内会完成节点分发。如果在20分钟后仍然看不到更新,可以通过httpwatch抓取访问数据包,然后通过企业QQ联系运维支持协助定位;
3. 如果文件是同名文件更新,由于节点缓存和用户缓存等问题,一般需要在30分钟内完成更新。若超过30分钟发现未更新,可以通过httpwatch抓取访问数据包,然后通过企业QQ联系运维支持协助定位。

8. CDN文件缓存时间是多久?

CDN文件的缓存时间,是指文件在浏览器中的缓存时间周期。
Html的文件缓存时间查看方式:
查看http消息头里面的cache-control,如“Cache-Control max-age=2592000(秒)”,表示文件将会缓存30天。
这时除非使用刷新按钮,否则新开的浏览器页面在文件缓存周期内都不会去服务器重新获取文件。

CDN根据不同的文件类型,缓存时间设置有差别,如静态的图片文件会设置30天;flash、js等动态文件一般缓存10分钟。

9. 如何使同名文件的更新快速生效?

CDN文件在浏览器中有相应的缓存时间,应用更新发布同名文件的时候,如果用户不进行刷新操作,用户不会马上访问到更新的文件。
这时应用可以通过修改程序代码,在访问更新的资源时,采用url?v=xxx(xxx是数字参数,如123)的格式,通过添加参数v来判断需要更新资源,让用户获取最新的文件。

10. 为什么有时抓包会看到CDN文件出现302跳转?

如果应用本身没有设置跳转,而访问CDN文件时存在302跳转,这种情况属于被劫持。
个别小运营商由于某些目的,会在本地路由缓存一些数据,当检测到某些URL时,会直接跳转到自己缓存的数据,而不是正常传递请求到目的服务器。

11. 上传后,CDN文件节点的数据不是最新的?

CDN文件生效的时间是开发者点击“CDN文件生效”按钮后的10分钟内(如果是上传的是同名文件,需要30分钟左右生效)。
如果超过时间未发现文件生效,可以做如下检查:
1. 存在浏览器缓存问题,同名文件不能显示更新,此时通过清空缓存,刷新页面可以拉取到新文件;
2. 个别地区未生效:由于CDN下发文件是要到各个节点的,存在各节点生效快慢的问题,如果有节点已经检测到文件,未生效的节点只需等待一段时间就会同步到。
3. 如果上传的是新文件,则先核实SVN同步是否已经成功 (文件显示绿色对号则同步成功),然后看是否已经点击了“CDN文件生效”的按钮。 如果是,则通过企业QQ联系运维支持协助定位。

12. flash和图片加载cdn文件会有跨域访问的问题?

如果接口参数中没有对图片/flash域名限制进行说明,则传入的图片/flash地址的根域名必须要有一个crossdomain.xml 的flash授权文件,以向腾讯的网站授权可以加载到图片/flash。
crossdomain.xml的内容如下:

<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="*.qq.com" secure="false" />
   <allow-access-from domain="*.soso.com" secure="false" />
   <allow-access-from domain="*.paipai.com" secure="false" />
   <allow-access-from domain="*.gtimg.cn" secure="false" />
   <allow-access-from domain="*.pengyou.com" secure="false" />
</cross-domain-policy>

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部