https://www.mf8.biz/ngx_brotli/
前言
之前有一篇文章写过安装 google/ngx_brotli
,详情:《Nginx 使用 Brotli 压缩算法,Better than Gzip Compression》,不过呢,由于 ngx_brotli
程序的发展,所以之前的教程不再适合新的 ngx_brotli
了。
关于 brotli 的具体介绍,还请看上一篇文章。
说明
之前 google/ngx_brotli
是需要依赖 bagder/libbrotli
库的,这就导致了安装比较复杂而且 libbrotli
还容易安装出错(写脚本的时候就死在这个上了,真心体会)。
现在 google/ngx_brotli
从 16年12月的版本起,开始内置 google/brotli
,以为着我们不需要额外编译 bagder/libbrotli
库了,让安装变得简单起来了。
注: 除 google/ngx_brotli
之外,还有 cloudflare/ngx_brotli_module
,安装方法和本文一样,不过后者很久没更新了,而且也不是谷歌亲儿子应用,所以还是后者好。
安装
例如,我们将 google/ngx_brotli
下载并解压到 /tmp/ngx_brotli
目录。
cd /tmp
git clone https://github.com/google/ngx_brotli.git
然后在下载 google/brotli
并解压到 /tmp/ngx_brotli/deps/brotli
cd ngx_brotli/deps/brotli
git clone git@github.com:google/brotli.git
编译
然后编译 nginx 加入 --add-module=/tmp/ngx_brotli
参数。
cd nginx-1.10.3
./configure --add-module=/tmp/ngx_brotli
设置
编辑 nginx.conf
文件,在http配置段增加以下配置,然后重启即可
brotli on;
brotli_comp_level 6;
brotli_buffers 16 8k;
brotli_min_length 20;
brotli_types *;
如果,nginx 反代的程序也启了 gzip 压缩,就要设置 反代禁用 gizp
反代代码中添加:
proxy_set_header Accept-Encoding "";
题外话
因为不用安装 libbrotli 了,所以也不会有 nginx: error while loading shared libraries: libbrotlienc.so.1: cannot open shared object file: No such file or directory
,还是很棒棒的。