内容分发网络(Content Delivery Network,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 并开启回源鉴权,即开启私有存储桶访问。 |
第三方对象存储 | 若资源已存储在第三方对象存储中,请输入有效的存储桶访问地址作为源站,当前支持的第三方为:AWS S3 和阿里云 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.txt
Etag:"d41d8cd98f00b204e9800998ecf8427e"
特殊名词解释
Etag:腾讯云COS资源的唯一ID。如通过 PUT Object 上传的对象,则为上传文件内容的 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【基础配置】页中【源站信息】模块最下方即可看到【高级回源配置】, 欢迎大家进行体验!
扫码关注 收获更多~
我知道你在看哟