本文档介绍如何在火山引擎内容分发网络(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
头部的值包含 br
和 gzip
时,有以下两种情况:
- 如果
Accept-Encoding
不包含算法的权重,CDN 对请求文件进行 Brotli 压缩。 - 如果
Accept-Encoding
包含算法的权重,CDN 使用权重高的算法对请求文件进行压缩。
- 如果请求为 Range 请求,CDN 不会对请求的分片文件进行压缩。
- 若源站文件配置了 MD5 校验机制,请勿开启智能压缩功能。
- 所有浏览器都支持 Gzip 压缩。老版本浏览器可能不兼容 Brotli 压缩。您可以 查看 Brotli 的浏览器兼容情况。
- 如果源站响应中 Vary 头部没有遵循 RFC 标准,则可能会导致压缩功能不生效。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。 - 在域名页面上,点击 高级配置 页签。
- 在页面右上方,点击 编辑配置。
- 在 智能压缩 下方,设置 状态 为 开启。
- 点击 添加规则,根据 配置说明 进行配置。您最多可以添加 50 条规则。
- 配置完成后,在页面右上方点击 提交编辑。
![alt](https://portal.volccdn.com/obj/volcfe/cloud-universal-doc/upload_1d923cceb38c0ef7365e9e6538be525e.png)
配置说明
配置 | 说明 |
---|
优先级 | 表示规则的优先级。数字为 1 的规则优先级最高。在收到请求时,CDN 按优先级,尝试将请求与每一条规则中的过滤条件匹配。如果请求满足规则中的过滤条件,CDN 就停止处理其余规则。您可以通过拖拽调整规则的优先级。 |
规则类型 | 表示规则中的过滤类型。该配置有以下选项: 说明 规则列表中只能有一条过滤类型是 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。 自定义:表示规则应用于指定的文件类型。您可以从列表中勾选一个或者多个文件类型。您也可以点击 自定义类型 添加不在列表中的文件类型。 ![](https://portal.volccdn.com/obj/volcfe/cloud-universal-doc/upload_441fe08d59a46fc9958d538f787e0bef.png)
|
文件范围(最小值) | 表示一个文件大小。如果请求文件的大小小于该值,则 CDN 不会压缩该文件。该配置的取值范围 0 - 2,147,483,647,单位是 KB,使用的进制是 1,024。如果该配置值是 0 ,表示无论文件大小,CDN 始终对文件进行压缩。 |
压缩方式 | 表示该规则对指定类型的文件所使用的压缩算法。该配置有以下取值: CDN 在使用 Brotli 算法压缩请求文件时,使用的压缩级别是 6。 说明 Brotli 有 12 个压缩级别,从 0 到 11,其中 0 提供最快的压缩速度,但压缩比最低,11 提供最高的压缩比,但需要更多的计算资源和压缩时间。 |