本文档介绍如何在火山引擎内容分发网络(CDN)中启用智能压缩。
开启智能压缩后,您可以创建规则,指定哪些类型的文件需要压缩以及所使用的压缩算法。在收到请求时,如果请求匹配了某条规则,CDN 会根据规则的配置对请求的文件进行压缩。该功能可以减小文件的大小,提高文件传输速度,降低流量消耗。
智能压缩支持 Gzip 和 Brotli 压缩算法。
如果客户端可以接收压缩的数据,请求需要包含 Accept-Encoding
头部并指明客户端支持的压缩算法以及权重。权重是可选的。比如 Accept-Encoding: gzip;q=0.8, br;q=0.6
表示客户端同时支持 Gzip 和 Brotli,但是 Gzip 优先。如果请求中不包含该头部,表示客户端不能处理压缩数据。
CDN 的响应中包含 Content-Encoding
头部,指示了响应的文件所使用的压缩算法。
Content-Encoding
头部值不为空且不为 identity
,表明源站已经对该文件进行了压缩。在这种情况下,CDN 不再对该文件进行压缩。Accept-Encoding
头部的值包含 br
和 gzip
时,有以下两种情况:
Accept-Encoding
不包含算法的权重,CDN 对请求文件进行 Brotli 压缩。Accept-Encoding
包含算法的权重,CDN 使用权重高的算法对请求文件进行压缩。配置 | 说明 |
---|---|
规则类型 | 表示规则中的过滤类型。该配置有以下选项:
说明 规则列表中只能有一条过滤类型是 Content-Type 的规则。这条规则的优先级是最低的,您也无法调整其优先级。 |
规则内容 | 表示规则中的过滤值,过滤值不区分大小写。多个过滤值之间使用分号(;)分隔,总长度不能超过 1,024 个字符,不能包含以下字符:
|
文件范围 | 表示文件大小的范围。只有请求文件的大小在该范围内,CDN 才会压缩文件。默认的范围是 0 - 2 MB,范围的上限必须大于下限。上限的取值范围是 0-2,147,483,647,下限的取值范围是 1-2,147,483,647,单位是 KB。如果您不指定上限,表示您不限制文件大小的上限。 |
压缩方式 | 表示该规则对符合过滤条件的请求文件所使用的压缩算法。该配置有以下取值:
CDN 在使用 Brotli 算法压缩请求文件时,使用的压缩级别是 6。 说明 Brotli 提供了 12 个压缩级别,从 0 到 11,其中 0 提供最快的压缩速度,但压缩比最低,11 提供最高的压缩比,但需要更多的计算资源和压缩时间。 |
当收到用户请求时,CDN 基于规则在列表中出现的顺序,依次处理规则。在处理规则时,CDN 尝试将规则与请求匹配。如果任意一条规则匹配了请求,CDN 对请求文件应用压缩配置,并停止处理其余规则。您可以拖动规则调整规则在列表中的出现顺序。