阿里云 cdn: https://help.aliyun.com/document_detail/27099.html
2020.2.23 星期 二 11:01
CDN新手指引
产品简介
工作原理
应用场景
CDN的业务使用场景分为静态内容加速、动态内容加速和安全加速。阿里云CDN只用于加速静态内容,动态内容加速需使用阿里云全站加速,安全加速需使用阿里云安全加速。了解动态内容和静态内容,请参见什么是静态内容和动态内容?。
业务场景 | 场景概述 |
---|---|
图片小文件 | 网站或应用App的主要业务为图片和小文件下载,包括各类型图片、HTML、CSS、JS小文件等。 |
大文件下载 | 网站或应用App的主要业务为大文件下载,平均单个文件大小在20 MB以上,例如游戏、各类客户端下载和App下载商店等。 |
视音频点播 | 网站或应用App的主要业务为视频点播或短视频类。支持MP4、FLV等主流视频格式。 |
全站加速 | 全站加速是阿里云一款独立产品,主要用于动态内容加速,也可以实现动静分离加速。 |
安全加速 | 安全加速适用于游戏、金融、政企安防、电商、医疗领域等易受攻击又必须兼顾加速的业务场景。 |
产品定价
快速入门
#
域名管理
回源配置
当您通过客户端请求访问资源时,如果CDN节点上未缓存该资源,则会到源站获取,同时缓存到CDN节点。您可以根据所需配置回源的相关功能,提升资源访问效率。
配置回源HOST
配置回源协议
改写回源URI
改写回源参数
缓存配置
访问控制 >
概述
您可以通过设置Referer、IP、UsageAgent黑名单和白名单,以及URL鉴权,来实现对访客身份的识别和过滤,从而限制访问CDN资源的用户,提升CDN的安全性。
功能 | 说明 |
---|---|
配置Refer防盗链 | 您可以通过配置访问的Referer黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。 |
配置URL鉴权 | 您可以通过配置URL鉴权功能保护用户站点的资源不被非法站点下载盗用。URL鉴权比Referer防盗链安全性更高。 |
配置IP黑白名单 | 您可以通过配置IP黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。 |
配置UA黑白名单 | 您可以通过配置UsageAgent黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。 |
性能优化
功能 | 说明 |
---|---|
页面优化 | 当您开启页面优化功能时,CDN自动清除HTML页面冗余的注释和重复的空白符,缩小文件体积,提升页面可阅读性。 |
智能压缩 | 当您开启智能压缩功能时,CDN自动对静态文件进行Gzip压缩。通过智能Gzip压缩方式,可以有效减小传输文件大小,提升加速业务的效率。 |
Brotli压缩 | 当您需要对静态文本文件进行压缩时,可以开启此功能,有效减小传输内容大小,加速分发效果。 |
过滤参数 | 当您的URL请求中携带问号(?)和参数时,CDN节点在收到URL请求后,判断是否需要将携带参数的URL返回源站。 |
Brotli压缩
当您需要对静态文本文件进行压缩时,可以开启此功能,有效减小传输内容大小,加速分发效果。本文为您详细介绍开启Brotli压缩功能的方法。
最佳实践
CDN加速OSS源站资源(方法一)
CDN加速OSS源站资源(方法二)
CDN加速ECS源站资源
优化CDN缓存命中率
查看CDN缓存命中率
优化CDN缓存命中率
CDN缓存命中率的影响因素和优化策略如下表所示。
优化策略 | 影响因素 |
---|---|
预热URL | 1)当业务高峰期时,源站压力大,导致CDN缓存命中率低。 2)当CDN加速域名流量较低时,可能提前从CDN节点的缓存中清除,导致CDN缓存命中率低。 |
配置资源缓存规则 | 当静态资源未返回响应头Etag或Last-modified时,缓存失败,导致CDN缓存命中率低。 |
过滤URL中可变参数 | 当URL请求中带有queryString或其他可变参数时,资源重新回源会导致CDN缓存命中率降低。 |
例如:响应头x-swift为静态文件,在CDN上的缓存时间为0秒,说明CDN不缓存该文件,原因是响应头中没有带Etag和Last-modified。
您可以通过如下方法,验证缓存是否命中。
在浏览器Chrome上,按F12。
选择Network。
查看指定URL的响应头信息中的X-Cache字段。
如果显示HIT,则说明命中CDN节点上的缓存资源。
如果显示MISS,则说明未命中CDN节点上的缓存资源,直接回源站获取。
CDN缓存策略解读和配置策略
CDN 的缓存适用范围
CDN 对于常见的 HTTP 请求均是支持的,具体对不同请求方式的支持情况请参考表一。
但是有一点需要注意的是虽然对这些类型的 HTTP 请求均是支持的,但是并不是对所有请求方式都会进行缓存的。
CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。因此我们建议添加 CDN 的站点源站最好能够实现动静分离。将动态请求和静态请求的内容独立成两个站点,而 CDN 仅仅加速静态站点中的资源。
CDN缓存配置
缓存配置包括目录和后缀名两种形式,并且可以针对不同的缓存配置设置不同的权重以决定其优先级。
CDN 缓存规则
CDN 缓存情况查看
可以根据 X-Cache 查看当前该资源是否有在 CDN的 L1 节点缓存,
而查看 L2 节点的缓存情况则需要根据 Via 头中的第一部分查看,如果是 M 即是 MISS,没有命中的状态;而出现 H 即是命中缓存。
X-Swift-SaveTime 表示该资源缓存到 CDN 节点上的 GMT 时间(相比于北京时间晚8小时);
而 X-Swift-CacheTime 表示该资源在 CDN 节点上缓存多长时间会过期。
CDN如何通过HTTP头配置跨域资源共享(CORS)
更多信息
目前仅支持配置一条白名单域名。
若使用OSS作为源站,OSS与CDN控制台同时配置CORS,CDN的配置将覆盖OSS。
若源站为本地服务器或ECS实例,建议先进行动静分离,静态文件使用CDN加速,CDN控制台配置的CORS功能,仅对静态文件生效。