You need to enable JavaScript to run this app.
导航
智能压缩
最近更新时间:2025.10.27 10:41:13首次发布时间:2021.08.12 16:34:57
复制全文
我的收藏
有用
有用
无用
无用

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

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

说明

如果请求匹配了某条智能压缩规则,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 节点存在请求文件的压缩副本,CDN 会从压缩副本中提取请求的分片,并返回压缩后的分片。
    • 如果 CDN 节点不存在请求文件的压缩副本,CDN 会返回未压缩的分片。
  • 若源站文件配置了 MD5 校验机制,请勿开启智能压缩功能。
  • 所有浏览器都支持 Gzip 压缩。老版本浏览器可能不兼容 Brotli 压缩。您可以 查看 Brotli 的浏览器兼容情况
  • 如果源站响应中 Vary 头部没有遵循 RFC 标准,则可能会导致压缩功能不生效。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 智能压缩 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 内容优化 标签页中定位 智能压缩 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 内容优化 > 智能压缩
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. 智能压缩 模块中,设置 状态 为启用。
  6. 点击 新增规则,根据 配置说明 进行配置。您最多可以添加 50 条规则。
  7. 配置完成后,点击 提交编辑

Image

配置说明

配置

说明

规则类型

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

  • 文件后缀:表示路径末尾的扩展名。
  • 文件目录:表示路径中的一个目录。
  • 文件全路径:表示请求 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。
    • 自定义:表示规则应用于指定的文件类型。您可以从列表中勾选一个或者多个文件类型。您也可以点击 自定义类型 添加不在列表中的文件类型。
      Image

文件范围

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

压缩方式

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

  • Gzip
  • Brotli

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

规则生效逻辑

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