开启Brotli压缩算法,进一步提升页面传输速度

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进行检查

测试成功!

转载请声明原文链接

评论 ( 1)
  1. 沙发
    搬瓦工 2019-08-09 06:03

    加速加速
    体验很好