Brotli
Brotli
最初发布于2015年,用于网络字体的离线压缩。Google
软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli
增强版本,特别侧重于HTTP
压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API
已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。
与常见的通用压缩算法不同,Brotli
使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这
些来自一个文本和HTML
文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。
使用brotli
取代deflate
来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。
libbrotli
#安装libbrotli cd /www/server git clone https://github.com/bagder/libbrotli cd libbrotli ./autogen.sh ./configure make && make install
2、下载ngx_brotli
模块及其依赖
cd /www/server git clone https://github.com/google/ngx_brotli cd ngx_brotli && git submodule update --init <strong>3、编辑<code>Nginx</code>配置</strong>
vi /www/server/panel/install/nginx.sh #在你需要安装的Nginx版本下增加:--add-module=/www/server/ngx_brotli
4、重新编译Nginx
#比如我的版本是Nginx 1.15.8 sh /www/server/panel/install/nginx.sh install 1.15
安装完毕后输入nginx -V
查看编译参数。
5、修改配置Nginx
#Brotli Compression brotli on; brotli_comp_level 6; brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
6、Brotli
参数
brotli on; #启用 brotli_comp_level 6; #压缩等级,默认 6,太高的压缩水平可能需要更多的 CPU brotli_buffers 16 8k; #请求缓冲区的数量和大小 brotli_min_length 20; #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定 20 字节 brotli_types *; #指定允许进行压缩类型 #brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp; brotli_static always; #是否允许查找预处理好的、以 .br 结尾的压缩文件,可选值为 on、off、always brotli_window 512k; #窗口值,默认值为 512k
显示Br
说明Brotli
正常压缩成功。
总结
可以看出Brotli
压缩对比性能是非常强大的,对比Gzip
是要强上不少,对此加快网页打开速度。但有些浏览器还不支持此压缩方式,如同图一中的浏览器支持情况,当然,VPS
主机中对于Gzip
的压缩方式都是默认开启的,他们两者都可同时共存!并且Brotli
的优先级是要高于Gzip
的。
本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!