本文档介绍如何在火山引擎内容分发网络中启用智能压缩。
开启智能压缩后,您可以创建规则,指定哪些类型的文件需要压缩以及所使用的压缩算法。在收到请求时,如果请求匹配了某条规则,内容分发网络会根据规则的配置对请求的文件进行压缩。该功能可以减小文件的大小,提高文件传输速度,降低流量消耗。
智能压缩支持的压缩算法
智能压缩支持 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
头部的值包含 br
和 gzip
时,有以下两种情况:
- 如果
Accept-Encoding
不包含算法的权重,内容分发网络对请求文件进行 Brotli 压缩。 - 如果
Accept-Encoding
包含算法的权重,内容分发网络使用权重高的算法对请求文件进行压缩。
- 如果请求为 Range 请求,缓存节点会忽略 Range,返回压缩后的完整文件。
- 若源站文件配置了 MD5 校验机制,请勿开启智能压缩功能。
- 所有浏览器都支持 Gzip 压缩。老版本浏览器可能不兼容 Brotli 压缩。您可以查看 Brotli 的浏览器兼容情况。
- 如果源站响应中 Vary 头部没有遵循 RFC 标准,则可能会导致压缩功能不生效。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。 - 在域名页面上,点击 高级配置 页签。
- 在页面右上方,点击 编辑配置。
- 在 智能压缩 下方,设置 状态 为 开启。
- 点击 添加规则,根据配置说明进行配置。您最多可以添加 50 条规则。
- 配置完成后,在页面右上方点击 提交编辑。
配置说明
配置 | 说明 |
---|
优先级 | 表示规则的优先级。数字 1 的规则优先级最高。在收到请求时,内容分发网络按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了某一条规则,内容分发网络就停止匹配其余规则。您可以通过拖拽调整规则的优先级。 |
规则类型 | 选择一个缓存规则的类型。该配置有以下取值: 说明 规则列表中只能有一条类型是 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 ,表示无论文件大小,内容分发网络始终对文件进行压缩。 |
压缩方式 | 表示该规则对指定类型的文件所使用的压缩算法。该配置有以下取值: |