谷歌于 2013 年首次发布了 Brotli 压缩格式,作为谷歌 Web 字体的一种离线压缩方法。2 年后,谷歌发布了 Brotli 的新版本,用于通用无损数据压缩需求。但是,Brotli 缺乏浏览器支持,而 Gzip 在这方面仍处于领先地位。结果,Brotli 等了好几年时间才具备了挑战 Gzip 的能力。
好早之前就注意到了br缓存,比如在设置CDN的时候也经常看到是选择gzip还是br压缩,这里的br压缩就是指Brotli压缩,其中,Brotli 已获得所有主流 Web 浏览器的全面支持,包括 Chrome、Firefox、Safari 和 Edge等等。下面就说说宝塔面板如何给nginx开启br压缩。
直接在ssh里以root用户执行以下命令。注意,一行一行执行,每一行的命令不作解释,照着输入就行。
cd /www/server
#下载brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
#更新brotli
git submodule update --init
宝塔面板后台,找到软件设置,然后找到nginx直接卸载,不要犹豫。(如果怕出问题还是建议做一个服务器快照。)如果出现数据丢失概不负责。
然后软件商店 ->运行环境 找到Nginx 点击安装在弹出的窗口中选择编译安装 点击添加自定义模块
勾选br后提交,等待nginx安装(编译安装可能有一点点慢,等几分钟就好)服务器配置太低就不建议安装了。
安装好后就到了开启压缩的时候了,在nginx配置文件里添加以下代码段保存即可。(添加在http片段里,这里不用管gzip压缩,在有br的情况下,默认使用br。)
# brotli
brotli on;
brotli_comp_level 1;
brotli_buffers 16 8k;
brotli_min_length 20;
brotli_types 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;
注意看位置,添加在gzip配置前面也是可以的。这里看你怎么选择。
添加好后重载nginx,这时候就开启了br压缩,你可以打开f12查看一下响应头里的缓存方式。
由于大多数 Web 应用都是使用 React 等 JavaScript 框架开发的,因此 Brotli 是提高网站加载性能的绝佳选择,推荐大家使用br压缩提高网站性能。