为你的宝塔面板启用Brotli压缩提高网站访问速度

请注意,本文编写于 171 天前,最后修改于 160 天前,其中某些信息可能已经过时。

什么是Brotli

Brotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。
与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。

使用brotli取代deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。

各浏览器支持情况

01.png
01.png

压缩性能

02.png
02.png

安装

安装libbrotli

cd /www/server
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install

下载ngx_brotli模块及其依赖

cd /www/server
git clone https://github.com/google/ngx_brotli
cd ngx_brotli && git submodule update --init

编辑配置

vi /www/server/panel/install/nginx.sh
#在你需要安装的Nginx版本下增加:--add-module=/www/server/ngx_brotli

重新编译Nginx

sh /www/server/panel/install/nginx.sh install 1.15
#安装自己需要的版本,如我的是1.15

启用Brotli

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;

03.png
03.png

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

04.png
04.png

总结

看图二由此可见相比Gzip,Brotli的压缩效果非常强大!但各类浏览器的支持情况很担忧,不过好在Gzip和Brotli两者可共存,极大的提高了网站的访问速度。

添加新评论

已有 2 条评论

发现好多用宝塔的,真的那么好用吗?我今天还研究了下全站webp图片,结果手机上浏览器都不支持,放弃了。

YuukiMoe YuukiMoe 回复 @奶爸de笔记

是挺好的呀,减少加载时间,压缩图片大小~如果是webp的话,可以用下七牛云和又拍!(/ω\)