You need to enable JavaScript to run this app.
导航
智能压缩
最近更新时间:2024.09.20 12:14:05首次发布时间:2021.08.12 16:34:57

本文档介绍如何在火山引擎内容分发网络(CDN)中启用智能压缩。

开启智能压缩后,您可以创建规则,指定哪些类型的文件需要压缩以及所使用的压缩算法。在收到请求时,如果请求匹配了某条规则,CDN 会根据规则的配置对请求的文件进行压缩。该功能可以减小文件的大小,提高文件传输速度,降低流量消耗。

智能压缩支持的压缩算法

智能压缩支持 Gzip 和 Brotli 压缩算法。

  • Gzip 是 Internet 上普遍使用的数据压缩格式,Gzip 对一般纯文本文件可压缩到原大小的 40%。
  • Brotli 是 Google 在 2015年9月推出的一种压缩算法,在压缩率和压缩性能上比 Gzip 有了很大的提升。目前绝大部分浏览器都支持 Brotli。

相关的请求头和响应头

如果客户端可以接收压缩的数据,请求需要包含 Accept-Encoding 头部并指明客户端支持的压缩算法以及权重。权重是可选的。比如 Accept-Encoding: gzip;q=0.8, br;q=0.6 表示客户端同时支持 Gzip 和 Brotli,但是 Gzip 优先。如果请求中不包含该头部,表示客户端不能处理压缩数据。

CDN 的响应中包含 Content-Encoding 头部,指示了响应的文件所使用的压缩算法。

注意事项

  • CDN 仅对 GET 请求的文件进行压缩。
  • 如果源站开启了压缩功能,且源站响应中 Content-Encoding 头部值不为空且不为 identity,表明源站已经对该文件进行了压缩。在这种情况下,CDN 不再对该文件进行压缩。
  • 如果您在智能压缩配置中同时勾选了 Brotli 压缩和 Gzip 压缩,且用户请求中的 Accept-Encoding 头部的值包含 brgzip 时,有以下两种情况:
    • 如果 Accept-Encoding 不包含算法的权重,CDN 对请求文件进行 Brotli 压缩。
    • 如果 Accept-Encoding 包含算法的权重,CDN 使用权重高的算法对请求文件进行压缩。
  • 如果请求为 Range 请求,CDN 不会对请求的分片文件进行压缩。
  • 若源站文件配置了 MD5 校验机制,请勿开启智能压缩功能。
  • 所有浏览器都支持 Gzip 压缩。老版本浏览器可能不兼容 Brotli 压缩。您可以 查看 Brotli 的浏览器兼容情况
  • 如果源站响应中 Vary 头部没有遵循 RFC 标准,则可能会导致压缩功能不生效。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 在域名页面上,点击 高级配置 页签。
  5. 在页面右上方,点击 编辑配置
  6. 智能压缩 下方,设置 状态 为启用。
  7. 点击 新增规则,根据 配置说明 进行配置。您最多可以添加 50 条规则。
  8. 配置完成后,在页面右上方点击 提交编辑

alt

配置说明

配置说明

规则类型

表示规则中的过滤类型。该配置有以下选项:

  • 文件后缀:表示路径末尾的扩展名。

  • 文件目录:表示路径中的一个目录。

  • 文件全路径:表示请求 URL 中的路径。

  • Content-Type:表示请求中的 Content-Type 请求头。

说明

规则列表中只能有一条过滤类型是 Content-Type 的规则。这条规则的优先级是最低的,您也无法调整其优先级。

规则内容

表示规则中的过滤值,过滤值不区分大小写。多个过滤值之间使用分号(;)分隔,总长度不能超过 1,024 个字符,不能包含以下字符:

  • 连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
    另外,

  • 如果 规则类型文件后缀,过滤值是一个或者多个文件后缀。文件后缀无需以句点(.)开头。例如:png;txt

  • 如果 规则类型文件目录,过滤值是一个或者多个目录路径。目录路径必须以斜杠(/)开头和结尾。例如:/chs/foods/;/us/birds/

  • 如果 规则类型文件全路径,过滤值是一个或者多个文件路径。文件路径必须以斜杠(/)开头,可以包含星号(*)用来表示一个或者多个字符。例如:/chs/foods/local*sets;/us/birds/chickadee

  • 如果 规则类型Content-Type,控制台提供以下选项:

    • 默认:表示规则应用于以下所有文件类型:text/html、text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、text/javascript、image/tiff、image/svg+xml、application/json、application/xml、text/plain; charset=utf-8。

    • 自定义:表示规则应用于指定的文件类型。您可以从列表中勾选一个或者多个文件类型。您也可以点击 自定义类型 添加不在列表中的文件类型。

文件范围表示文件大小的范围。只有请求文件的大小在该范围内,CDN 才会压缩文件。默认的范围是 0 - 2 MB,范围的上限必须大于下限。上限的取值范围是 0-2,147,483,647,下限的取值范围是 1-2,147,483,647,单位是 KB。如果您不指定上限,表示您不限制文件大小的上限。

压缩方式

表示该规则对符合过滤条件的请求文件所使用的压缩算法。该配置有以下取值:

  • Gzip

  • Brotli

CDN 在使用 Brotli 算法压缩请求文件时,使用的压缩级别是 6。

说明

Brotli 提供了 12 个压缩级别,从 0 到 11,其中 0 提供最快的压缩速度,但压缩比最低,11 提供最高的压缩比,但需要更多的计算资源和压缩时间。

规则生效逻辑

当收到用户请求时,CDN 基于规则在列表中出现的顺序,依次处理规则。在处理规则时,CDN 尝试将规则与请求匹配。如果任意一条规则匹配了请求,CDN 对请求文件应用压缩配置,并停止处理其余规则。您可以拖动规则调整规则在列表中的出现顺序。