2022-12-17 01:01:36
Gzip的后继者Brotli在CDN智能压缩中表现出色,服务器可通过第三方模块(如Nginx的ngx_brotli)启用Brotli压缩,并配置压缩级别、缓冲等参数优化性能。以下是具体分析:
CDN厂商的智能压缩针对常见的Web资源内容,Brotli的性能相比Gzip提高了17-25%。
当Brotli压缩级别为1时,压缩率比Gzip压缩等级为9(最高)时还要高。
在处理不同HTML文档时,Brotli依然能够提供非常高的压缩率。
比其他算法提供更快的解压与压缩速度。

图一:Brotli与常用的压缩算法bzip2、gzip、lzma2对比,压缩比上有明显的优势。

图二:Brotli的解压缩速度与Gzip非常相似,但远远超出bzip2和lzma2。
服务器Brotli设置安装第三方模块:Nginx目前并不原生支持Brotli算法,需要使用第三方模块,如ngx_brotli。安装步骤如下:
brotli_static:启用后将会检查是否存在带有br扩展的预先压缩过的文件。如果值为always,则总是使用压缩过的文件,而不判断浏览器是否支持。
brotli:是否启用在on-the-fly方式压缩文件,启用后,将会在响应时对文件进行压缩并返回。
brotli_types:指定对哪些内容编码类型进行压缩。text/html内容总是会被进行压缩。
brotli_buffers:设置缓冲的数量和大小。大小默认为一个内存页的大小,也就是4k或者8k。
brotli_comp_level:设置压缩质量等级。取值范围是0到11。
brotli_window:设置窗口大小。
brotli_min_length:设置需要进行压缩的最小响应大小。