什么文件可以放在CDN上?
CDN是为了加速用户访问体验而设计的,所以存放在CDN上的文件应该都是小文件,大小最好不要超过500K。
存放文件的类型并没有限制,静态的图片如jpg、gif、png,flash文件,js和css文件等都可以存放在CDN上。
对于CDN_V2:在CDN的SVN服务器上对目录进行删除操作并提交成功后,再在CDN文件发布页面点击“CDN文件生效”,即实现CDN目录或文件删除。
目录或文件的删除会有一定时间的延迟(延迟在1小时-1天之间),即用户在SVN服务器上删除并提交然后点击“CDN文件生效”后,系统实际上是先将CDN源站上的文件删除了,CDN源站会在一段时间内触发同步到各CDN节点,同步完成后,该目录或文件才被删除,不可访问。
对于CDN_V2:可通过SVN上传通道将文件从本地上传到CDN。开发者可以通过SVN客户端的“Repro browser”命令直接查看CDN SVN仓库里的目录及文件。
对于CDN_V1:不支持目录或者文件名称的修改,只能新建一个目录或新上传一个文件。
开发者需要先在FTP服务器上重新创建一个目录,或者重新上传更名后的文件。
如果是直接在FTP上对目录或直接对文件名进行更名,是不会同步到CDN的。
对于CDN_V2:开发者在CDN的SVN服务器上对目录或文件名称修改并提交成功后(详见SVN使用指引),再在CDN文件发布页面点击“CDN文件生效”,即可将重新命名的目录或文件发布到CDN。
目录或文件名称更改后,相当于删除了原文件,创建了新文件,CDN上更名前的目录或文件路径变为无效,不可访问。
如何判断用户访问的是哪个CDN节点?
当用户反馈文件加载慢或者访问出错时,如果应用的文件是部署在CDN上的,需要先获取终端玩家访问的CDN节点数据。
通过nslookup和ping应用相应的CDN域名可以获取用户访问的CDN节点的IP和延时丢包等基本的排错信息,如nslookup app31182.imgcache.qzoneapp.com
如果访问其他站点正常,而访问CDN文件缓慢时,可以通过httpwatch抓取访问数据包,然后通过企业QQ联系运维支持协助定位。
如果文件是同名文件更新,由于节点缓存和用户缓存等问题,一般需要在30分钟内完成更新。若超过30分钟发现未更新,可以通过httpwatch抓取访问数据包,然后通过企业QQ联系运维支持协助定位。
CDN根据不同的文件类型,缓存时间设置有差别,如静态的图片文件会设置30天;flash、js等动态文件一般缓存10分钟。
如何使同名文件的更新快速生效?
CDN文件在浏览器中有相应的缓存时间,应用更新发布同名文件的时候,如果用户不进行刷新操作,用户不会马上访问到更新的文件。
这时应用可以通过修改程序代码,在访问更新的资源时,采用url?v=xxx(xxx是数字参数,如123)的格式,通过添加参数v来判断需要更新资源,让用户获取最新的文件。
为什么有时抓包会看到CDN文件出现302跳转?
如果应用本身没有设置跳转,而访问CDN文件时存在302跳转,这种情况属于被劫持。
个别小运营商由于某些目的,会在本地路由缓存一些数据,当检测到某些URL时,会直接跳转到自己缓存的数据,而不是正常传递请求到目的服务器。
如果上传的是新文件,则先核实SVN同步是否已经成功 (文件显示绿色对号则同步成功),然后看是否已经点击了“CDN文件生效”的按钮。 如果是,则通过企业QQ联系运维支持协助定位。
https://wiki.open.qq.com/wiki/CDN%E7%9B%B8%E5%85%B3%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
如果两个 URL 的 protocol、port (en-US) (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,
跨域写操作(Cross-origin writes)一般是被允许的。例如链接(links),重定向以及表单提交。特定少数的HTTP请求需要添加 preflight。
跨域资源嵌入(Cross-origin embedding)一般是被允许(后面会举例说明)。
跨域读操作(Cross-origin reads)一般是不被允许的,但常可以通过内嵌资源来巧妙的进行读取访问。例如,你可以读取嵌入图片的高度和宽度,调用内嵌脚本的方法,或availability of an embedded resource.
https://segmentfault.com/a/1190000015597029
https://www.163yun.com/help/documents/76798056411090944
https://help.aliyun.com/document_detail/31870.html
https://help.aliyun.com/document_detail/31903.html
https://cloud.tencent.com/document/product/436/30737
https://support.huaweicloud.com/clientogw-obs/zh-cn_topic_0045829129.html
https://cloud.tencent.com/document/product/436/11488
https://developer.51cto.com/art/202009/626420.htm
https://segmentfault.com/a/1190000011145364
https://segmentfault.com/a/1190000022398875
https://github.com/AlibabaCloudDocs/cdn/blob/master/intl.zh-CN/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/%E5%8A%A0%E9%80%9F%E5%86%85%E5%AE%B9/CDN%E6%94%AF%E6%8C%81cors%EF%BC%88%E8%B7%A8%E5%9F%9F%EF%BC%89%E9%85%8D%E7%BD%AE%E7%9A%84%E6%AD%A5%E9%AA%A4%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9.md
https://support.huaweicloud.com/usermanual-cdn/cdn_01_0021.html
https://help.aliyun.com/document_detail/40183.html