CDN如何进行内容缓存与内容预热

CDN的启用与管理

1、打开火伞云融合CDN系统控制后台-CDN管理

2、查看加速域名下的全部CDN服务,可以看到有部分厂商暂时处于未启用状态,这是因为这些厂商要求进行域名所有权校验后方可使用(如果已经处于已启用状态的厂商则不用额外进行操作)

3、点击对应厂商-选择启用-进行域名所有权校验(以阿里云为例)

4、登录阿里云后台,选择对应域名的解析设置,如下图:

单击添加记录,填写火伞云域名所有权校验中的记录类型、主机记录和记录值。

单击确认,完成添加。

5.等待TXT解析生效,返回火伞云CDN控制台,单击点击“确定”,完成验证。

如果系统提示“验证失败”,请检查TXT记录是否正确填写,并等待DNS记录生效后重新验证。

内容缓存与内容预热

一、内容缓存

1、什么是缓存

您使用CDN加速静态资源时,CDN会将源站上的资源缓存到距离客户端最近的CDN节点上。当您访问该静态资源时,可直接从CDN的缓存节点上获取,有效避免通过较长的链路回源,提高资源访问效率。CDN的所有节点上都包含缓存软件,在用户请求或者源站响应资源经过CDN节点时,缓存软件可以根据需要对用户请求或者源站响应资源做各种处理,包括设置缓存时长、改写回源请求等。

通过缓存配置功能,您可以对域名执行如下操作:

2、配置缓存过期时间

缓存过期时间指源站资源在CDN节点缓存的时长,达到预设时间,资源将会被CDN节点标记为失效资源。如果客户端向CDN节点请求的资源已经失效,CDN会回源站获取最新资源并缓存到CDN节点。您可以根据业务需求,按目录或文件后缀名配置静态资源的缓存过期时间。

3、注意事项

①建议您源站的内容不使用同名更新,而是采用版本号的方式同步。

②为了能准确找到更新前和更新后的源站内容,建议您源站的内容以版本号的方式同步,即③更新源站内容时采用不同的名称。例如,采用img-v1.0.jpg、img-v2.1.jpg的方式命名。

④缓存过期时间会影响回源频率,建议根据实际业务需求设置资源缓存时长。

⑤缓存过期时间过短,会导致CDN频繁回源,增加源站的流量消耗;缓存过期时间过长,会带来数据更新时间慢的问题。

⑥缓存在CDN节点上的资源,由于热度低可能被提前从节点上删除。

⑦CDN节点在收到源站响应的静态文件资源的时候,会按照CDN缓存规则及优先级来执行。

4.操作步骤

①登录火伞云CDN控制台-在左侧导航栏,单击“缓存控制”,然后在域名管理页面,单击目标域名对应的管理。

②在指定域名的栏目下,点击增加缓存规则

③根据自身需求设置需缓存的文件以及设置缓存时间,完成配置缓存规则并点击确认。

④对于无缓存规则的内容设置,点击“无缓存规则”,并根据需求进行设置

⑤如果要清楚缓存规则,可点击“清楚缓存”并进行设置

⑥完成设置后单击确定,完成配置。

5、关于缓存设置的相关说明:

①类型

支持按目录或文件后缀名指定资源范围。

目录:为某一路径下所有资源设置相同缓存规则。

文件后缀名:为某一文件类型资源的设置相同缓存规则。

②过期时间

资源在CDN节点的缓存时间,最长可以设置28天。建议参考如下规则配置:

不常更新的静态文件(例如,图片类型、应用下载类型等),建议设置28天。

频繁更新的静态文件(例如,JS、CSS等),根据实际业务情况设置。

动态文件(例如,PHP、JSP、ASP等),建议不缓存。

二、预热资源

火伞云CDN提供资源预热功能,通过本文您可以了解预热的操作步骤。

1、预热:源站主动将对应的资源缓存到CDN节点,当您首次请求资源时,即可直接从CDN节点获取到最新的资源,无需再回源站获取。预热功能会提高缓存命中率。

2、主要适用场景:

①运营活动

运营一个大型活动时,提前将活动页涉及到的静态资源预热至CDN节点,活动开始后用户访问的所有静态资源均已缓存至CDN加速节点,由加速节点直接响应。

②安装包发布

新版本安装包或升级包发布前,提前将资源预热至CDN加速节点,产品正式上线后,海量用户的下载请求将直接由CDN加速节点响应,提升下载速度,大幅度降低源站压力,提升用户体验。

3.注意事项

①提交预热任务并成功执行后,CDN节点会立即回源站加载所需资源,因此大批量提交预热任务会生成较多的并发下载任务,导致回源带宽和请求突增,增加源站压力。

②预热任务从提交到预热完成,实际执行时间视预热文件大小而定,大约需要5~30分钟。

4.操作步骤

①登录火伞云CDN控制台-在左侧导航栏,单击“预热内容”,然后在域名管理页面,单击目标域名对应的管理。

②在指定域名的栏目下,点击“增加预热”

③通过预热功能,您可以在业务高峰前预先将热门资源缓存到CDN节点,降低源站压力提升用户体验。

5.关于缓存设置的相关说明:

①输入的URL必须带有http://或https://。

②预热多个URL时,请按照一行一个URL进行输入。

③URL预热配额(每日):默认情况下,一个账号每日最多可以提交1000条URL预热任务

④预热速度:预热任务的执行速度与需要预热资源的文件平均大小有关,文件平均大小越小,预热速度越快。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Perl编写的调用华为云创建CDN预热和刷新CDN缓存预热的API接口的示例代码: ```perl #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use JSON; # Replace with your own values my $ak = 'YOUR_ACCESS_KEY'; my $sk = 'YOUR_SECRET_KEY'; my $project_id = 'YOUR_PROJECT_ID'; my $domain_name = 'YOUR_DOMAIN_NAME'; # Create a UserAgent object my $ua = LWP::UserAgent->new; # Set the API endpoint URL my $url = "https://cdn.myhuaweicloud.com/v1.0/$project_id/refresh-tasks"; # Set the request headers my $headers = [ 'Content-Type' => 'application/json', 'X-Auth-Token' => '', ]; # Set the request body my $body = { 'refresh_type' => 'flush', 'domains' => [ $domain_name ] }; # Encode the request body as JSON my $json_body = encode_json($body); # Sign the request with the AK/SK my $timestamp = time; my $auth_string = "CDN $ak:$timestamp:" . hmac_sha1_hex($timestamp, $sk); $headers->{'X-Auth-Token'} = $auth_string; # Send the API request my $response = $ua->post( $url, headers => $headers, content => $json_body ); # Check for errors if ($response->is_error) { die "API request failed: " . $response->status_line; } # Decode the response body as JSON my $json_response = decode_json($response->content); # Print the task ID my $task_id = $json_response->{'task_id'}; print "Task ID: $task_id\n"; ``` 这个示例代码会向华为云发送一个CDN缓存预热的请求,使用了LWP::UserAgent模块发送HTTP请求,使用JSON模块将请求体和响应体编码为和解码为JSON格式。在实际使用中,需要将示例代码中的YOUR_ACCESS_KEY、YOUR_SECRET_KEY、YOUR_PROJECT_ID和YOUR_DOMAIN_NAME替换为自己的实际值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值