Brotli即br算法,它最初发布于2015年,由Google推出的开源压缩算法,通过变种的LZ77算法、Huffman编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压缩效率,可以帮我们更高效的压缩网页中的各类文件大小及脚本,从而提高加载速度,提升网页浏览体验。因它比Gzip有更强的压缩率 所以在cdn上 还能减少20%的流量费用!
特点
- 针对常见的 Web 资源内容,Brotli 的性能相比 Gzip 提高了 17-25%;
- 当 Brotli 压缩级别为 1 时,压缩率比 Gzip 压缩等级为 9(最高)时还要高;
- 在处理不同 HTML 文档时,Brotli 依然能够提供非常高的压缩率。
- 可以和gzip共存 当浏览器不支持时自动变为gzip压缩
浏览器支持
- 自第50版(2016年4月20日发布)以来,谷歌浏览器一直支持'br'内容编码方法。
- 自版本15(2017年4月5日发布)以来,Microsoft Edge一直支持'br'内容编码方法。
- Mozilla Firefox在44版(2016年1月26日发布)中引入了对'br'内容编码方法的支持。
- 自版本38(2016年6月8日发布)以来,Opera一直支持'br'内容编码方法。
- 自版本11(2017年10月5日发布)以来,Safari一直支持'br'内容编码方法。
下载Brotli
cd /www/server git clone https://github.com/google/ngx_brotli.git //下载brotli cd ngx_brotli git submodule update --init //更新brotli
手动编译
!!!如果你是宝塔面板 请往下看宝塔安装方法
1、首先查看当前nginx版本
nginx -V
会显示类似如下
nginx version: nginx/1.17.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.1.1b 26 Feb 2019 TLS SNI support enabled configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
configure arguments后面为你当前nginx编译的插件参数
2、编译brotli
进入你nginx编译的目录
cd /usr/local/nginx
生成Makefile 将上面显示的编译复制下后面添加--add-module=/www/server/ngx_brotli
譬如
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --add-module=/www/server/ngx_brotli
按下回车 接下来进行编译
make
编译完成后记得使用nginx -V进行测试
宝塔面板编译安装
1、手动修改宝塔nginx安装脚本
编辑 /www/server/panel/install/nginx.sh
找到脚本编译的地方 你可以直接用Ctrl+F搜索 ./configure --user=www
在你需要安装的版本后面添加
--add-module=/www/server/ngx_brotli
譬如这样譬如我想编译安装1.17版本的Nginx 就这样
2、重新安装nginx
在shell中输入
sh /www/server/panel/install/nginx.sh install 1.17 //后面改为你需要安装的版本号
编译完成后使用nginx -V进行检查测试
开启brotli
修改nginx配置
手动安装请修改nginx.conf
宝塔安装在 软件商店-nginx-设置-配置
在http{}中添加如下
brotli on; brotli_comp_level 5; brotli_min_length 512; brotli_types text/plain text/javascript text/css text/xml text/x-component application/javascript application/x-javascript application/xml application/json application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype; brotli_static always;
最后重载/重启nginx即可
参数说明
brotli on; #启用 brotli_comp_level 6; #压缩等级,默认6,最高11,太高的压缩水平可能需要更多的CPU brotli_buffers 16 8k; #请求缓冲区的数量和大小 brotli_min_length 20; #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定20字节 brotli_types text/plain; #指定允许进行压缩类型 brotli_static always; #是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off、always brotli_window 512k; #窗口值,默认值为512k
验证测试
使用谷歌浏览器 F12进行检查
测试成功!
转载请声明原文链接
我要给博主打赏10块钱,博客内容太有用了。有付款码吗
加速加速
体验很好