You need to enable JavaScript to run this app.
文档中心
文档控制台
免费开始使用
火山引擎入门实验

火山引擎入门实验

复制全文
下载 pdf
CDN与加速
配置并测试 CDN 缓存键值功能
复制全文
下载 pdf
配置并测试 CDN 缓存键值功能
前言

在源站的配置中,很多情况会使用 URI 参数来表示不同的内容。比如 http://www.example.com/volcano.png?version=1http://www.example.com/volcano.png?version=2 表示不同的文件。在这种情况下,参数是不能被忽略的。不同参数的 URI 应该作为不同的文件进行缓存。

但也有一些情况,URI 参数和文件无关。比如 http://www.example.com/volcano.png?token=358ar7b。 这里的 token 参数表示一个认证信息。在这种情况下,参数是可以被忽略的。不同参数的 URI 应该作为同一个文件进行缓存。

在本教程中,我们将使用 TOS 对象存储服务作为 CDN 源站,测试缓存键值的不同配置以及对应的测试结果。

关于实验

预计部署时间:50分钟
级别:初级
相关产品:内容分发网络 CDN
受众: 通用

环境说明
  1. 如果还没有火山引擎账号,点击此链接注册账号

  2. 您已开通火山引擎 CDN 服务,如果未开通,请先前往 CDN 开通页进行开通。

  3. 准备在中国大陆已备案的加速域名

  4. 开通并创建对象存储服务 TOS 资源

实验步骤

准备源站 TOS 资源

  1. 创建 TOS 存储桶,并创建 cdntest 名称文件夹,用于存放测试文件。
    alt

  2. 在 cdntest 文件中,上传一个文件,例如图片文件 byte.png,且访问权限为私有。
    alt

  3. 查看文件详情,可以看到文件访问 URL,复制并保存至记事本。

示例中 URL 格式如下:
https://XXXX.tos-cn-beijing.volces.com/cdntest/byte.png?X-Tos-Algorithm=TOS4-XXXX&X-Tos-Credential=AKTXXX&X-Tos-Date=2022XXX&X-Tos-Expires=3600&X-Tos-SignedHeaders=host&X-Tos-Security-Token=STSeyJBXXXX&X-Tos-Signature=f5fXXXX

alt

  1. 接下来,我们将针对 URL 中 byte.png? 的 “?“ 后的参数进行 CDN 缓存参数配置测试。

部署 CDN 环境

  1. 创建 CDN 域名,配置源站为先前创建的 TOS 存储桶,并开启私有桶访问。
    alt

  2. 在缓存配置页签缓存键值下方,点击 添加缓存键值规则,参考如下进行配置。
    alt

  3. 使用 curl 命令进行测试。

# 将 TOS 文件的 URL 链接中的主机名改为加速域名,其他参数保持不变。
curl -vo /dev/null http://<加速域名>/cdntest/byte.png?X-Tos-Algorithm=TOS4-XXXX&X-Tos-Credential=AKTXXX&X-Tos-Date=2022XXX&X-Tos-Expires=3600&X-Tos-SignedHeaders=host&X-Tos-Security-Token=STSeyJBXXXX&X-Tos-Signature=f5fXXXX
  1. 观察多次访问的返回结果。
4.1 首次访问结果将 miss CDN 缓存,如下
...
< HTTP/1.1 200 OK
< Server: Byte-nginx
< Content-Type: image/png
< Content-Length: 3252
< Connection: keep-alive
< Accept-Ranges: bytes
< Age: 0
...
< Via: cache11.xamp03,cache02.hdcu02
< X-Bdcdn-Cache-Status: TCP_MISS,TCP_MISS
< X-Response-Cache: miss
< X-Tos-Cs-Type: CDN
...

4.2 第二次访问开始 hit 命中 CDN 缓存,如下
...
< HTTP/1.1 200 OK
< Server: Byte-nginx
< Content-Type: image/png
< Content-Length: 3252
< Connection: keep-alive
< Accept-Ranges: bytes
< Age: 2268
...
< X-Bdcdn-Cache-Status: TCP_HIT
< X-Request-Ip: 180.184.71.21
< X-Response-Cache: edge_hit
...
< via: cache02.hdcu02
  1. 这次,更换访问的 URL 再次进行 curl 测试。
# 将 TOS 文件的 URL 链接中的主机名改为加速域名,且将 ? 后的参数随意修改为其他值即可。
curl -vo /dev/null http://<加速域名>/cdntest/byte.png?12344
  1. 观察多次访问的返回结果。
6.1 从首次开始访问起,每次均会命中 CDN 缓存。
...
> GET /cdntest/byte.png?12344 HTTP/1.1
> Host: xxxxx
> User-Agent: curl/7.79.1
...
< HTTP/1.1 200 OK
< Server: Byte-nginx
< Content-Type: image/png
< Content-Length: 3252
< Connection: keep-alive
...
< Via: cache63.xamp03,cache05.sjzcm04
< X-Bdcdn-Cache-Status: TCP_HIT
< X-Request-Ip: 120.244.140.217
< X-Response-Cache: edge_hit
< X-Response-Cinfo: 120.244.140.217
< X-Tos-Cs-Type: CDN

实验总结

当客户的不同请求的URL中含有复杂的参数,但实际访问的同一个文件时,由于我们将 CDN 的缓存键值配置为删除全部参数,CDN 将视为请求同一个文件,从而降低回源率。

如果您有其他问题,欢迎您联系火山引擎技术支持服务

最近更新时间:2022.07.06 12:48:29
这个页面对您有帮助吗?
有用
有用
无用
无用