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 ,还是很棒棒的。

2 条评论

发表评论