找回密码
 会员注册
查看: 33|回复: 0

如何保证CDN和源站内容同步?

[复制链接]

5

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-9-20 23:52:43 | 显示全部楼层 |阅读模式
点击蓝字关注我们内容分发网络(ContentDeliveryNetwork,CDN)通过将源站内容缓存至遍布全球的海量加速节点,使用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。 1.源站和CDN的关系源站:指用户稳定运行的业务服务器,腾讯云CDN的源站可以选择自有源站或对象存储(腾讯云COS&第三方对象存储)。域名接入CDN之后,用户请求CDN获取静态资源时,CDN节点便会回到源站获取资源,之后缓存到CDN节点本地Cache中,下次访问相同资源时,便可以在节点直接返回,而不需要再回到源站获取资源,利用腾讯云遍布全球的CDN节点与精准的智能调度方案,可以极大的提升终端用户的访问体验。2.源站基础配置说明腾讯云CDN支持配置域名源站基本信息、回源请求协议、回源HOST等信息,可在源站配置模块进行相关操作,接下来我们看一些基本的源站配置:登录腾讯云CDN控制台,在菜单栏里选择【域名管理】,单击域名右侧【管理】,即可进入域名配置页面,第一栏中基本信息下方即为源站配置模块:腾讯云CDN支持丰富的源站配置,接下来分别进行介绍:(1)主源站配置源站类型说明自有源站1)支持填充多个IP源站(一行一个)或一个域名源站:注:源站地址若为已接入的CDN加速域名,会造成循环解析,无法正常回源。2)支持增加端口(0-65535)和权重(1-100)配置:源站:端口:权重(端口可缺省:源站::权重)注:回源协议为HTTPS和协议跟随时,仅支持配置443端口或不配置端口。COS源 1)选择腾讯云对象存储中的一个存储桶作为源站。 2)根据存储桶处的配置和您的实际业务场景,选择默认域名或静态网站类型。 3)若您的存储桶为私有桶,请授权CDN并开启回源鉴权,即开启私有存储桶访问。第三方对象存储若资源已存储在第三方对象存储中,请输入有效的存储桶访问地址作为源站,当前支持的第三方为:AWSS3和阿里云OSS。示例:不可包含http:// 或http:// 协议头,如:my-bucket.s3.ap-east-1.amazonaws.com或my-bucket.oss-cn-beijing.aliyuncs.com。注意:回源至第三方私有存储桶,需填写有效密钥并开启回源鉴权,即开启私有存储桶访问。(2)回源协议CDN加速节点回源到用户源站时使用的协议。HTTP回源访问为HTTP、HTTPS时均使用HTTP回源。HTTPS 回源访问为HTTP、HTTPS时均使用HTTPS回源。协议跟随HTTP请求使用HTTP回源,HTTPS请求使用HTTPS回源。存在HTTPS回源情况下,请保证源站支持HTTPS访问,否则会导致回源失败。(3)回源HOST即回源域名,CDN节点在回源时,访问的源站IP地址下具体的站点域名。    -当源站为自有源时,默认为当前加速域名。若接入泛域名,则默认为泛域名,且实际回源HOST为访问域名。您可根据实际业务情况自行修改。    -当源站为COS源或者第三方对象存储源时,默认为存储桶访问地址,与源站地址一致,不可修改。源站地址和回源HOST的区别如下:源站地址:源站地址决定了回源时请求到的具体IP地址。回源HOST:回源HOST决定了回源请求访问到该IP地址上的具体站点。(4)热备源站配置您可以为您的主源站添加热备源站,所有回源请求均会先访问主源站,若返回为4XX/5XX错误码,或链接超时、协议不兼容等情况后,会再次回源至热备源站进行资源拉取,保障用户回源高可用。支持针对热备源站独立配置源站地址和回源HOST。热备源站注意事项:1、热备源的源站类型不支持COS源和第三方对象存储。2、若主源站开启了IPv6源站,则不支持添加热备源站。3、热备源站不支持配置权重。以上就是腾讯云CDN源站配置的简单介绍。3.如何保证CDN和源站内容同步?既然CDN上缓存了大量的源站资源,那就遇到一个问题,即:在源站资源变动之后,如何保证CDN节点上的资源与源站内容同步?针对这个问题,主要有两个方法,接下来分别进行介绍:测试资源:http://cdn-purge-1300432670.file.myqcloud.com/test-1.txtEtag:"d41d8cd98f00b204e9800998ecf8427e"特殊名词解释Etag:腾讯云COS资源的唯一ID。如通过PUTObject上传的对象,则为上传文件内容的MD5值,如通过分块上传或使用历史版本API上传的对象,为上传文件内容的唯一ID,不具备校验功能。首先我们可以通过控制台的预热功能先将目标资源在节点上进行缓存预热,保证节点上都有缓存的资源。(1)控制台刷新我们可以在源站资源变更之后,通过控制台主动进行刷新,以URL刷新为例,测试请求可以看到请求命中了缓存,此时文件的Etag与COS中的资源保持一致。接下来更新cos中的资源,更新后的Etag为:"3ffb2b343fab46288094b3613016d8c4"测试请求,可以看到由于缓存尚未过期,访问资源1.txt仍为旧的内容,CDN与源站出现了不一致:此时我们可以通过控制台主动对资源进行刷新:等待刷新成功再次请求可以发现节点上的缓存已经失效,请求直接回源,拉取到了最新的资源。(2)缓存键优化腾讯云CDN在进行缓存时使用的是Key-Value格式进行资源映射,其中的Key即缓存键,是缓存资源的唯一标识。您可通过缓存键规则配置,对不同文件类型的内容配置忽略参数和忽略大小写来进行缓存键优化。例如,我们可以通过配置忽略参数,保留URL的指定参数作为缓存键的方式,来实现CDN与源站资源的同步。接下来进行演示:我们在URL中使用version来标识文件版本然后再次进行预热可以看到请求命中了节点缓存,version=1的文件的etag为:3ffb2b343fab46288094b3613016d8c4此时我们更新源站文件并更新URL的version=3来请求可以看到没有命中缓存,而是直接回源获取到了最新的资源。4.高级回源配置通过以上的例子,我们可以看到,合理配置源站与缓存键,可以实现各种便捷的功能。此外,腾讯云CDN还支持高级回源设置,支持更细粒度的回源配置,根据不同规则回源到不同的源站地址。例如:分路径回源(指定文件类型、文件夹、全路径文件(如:/test/1.jpg)、首页回源)等。可以在在左侧菜单栏选择【域名管理】,单击域名操作列的【管理】,进入域名配置页面,Tab【基础配置】页中【源站信息】模块最下方即可看到【高级回源配置】,欢迎大家进行体验!扫码关注收获更多~我知道你在看哟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 15:02 , Processed in 1.011785 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表