You need to enable JavaScript to run this app.
导航

智能压缩

最近更新时间2024.02.29 20:50:09

首次发布时间2021.08.12 16:34:57

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

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

智能压缩支持的压缩算法

智能压缩支持 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 优先。如果请求中不包含该头部,表示客户端不能处理压缩数据。

内容分发网络的响应中包含 Content-Encoding 头部,指示了响应的文件所使用的压缩算法。

注意事项

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

操作步骤

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

alt

配置说明

配置说明
优先级表示规则的优先级。数字 1 的规则优先级最高。在收到请求时,内容分发网络按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了某一条规则,内容分发网络就停止匹配其余规则。您可以通过拖拽调整规则的优先级。

规则类型

选择一个缓存规则的类型。该配置有以下取值:

  • 文件后缀:表示规则应用于特定后缀名的所有文件。

  • 目录:表示规则应用于特定目录下的所有文件。

  • 文件全路径:表示规则应用于特定文件。

  • 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,控制台提供以下选项:

    • 默认:表示规则应用于 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。

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

文件范围(最小值)表示一个文件大小。如果请求文件的大小小于该值,则内容分发网络不会压缩该文件。该配置的取值范围 0 - 2,147,483,647,单位是 KB,使用的进制是 1,024。如果该配置值是 0,表示无论文件大小,内容分发网络始终对文件进行压缩。

压缩方式

表示该规则对指定类型的文件所使用的压缩算法。该配置有以下取值:

  • Gzip

  • Brotli