阿里云
发表主题 回复主题
  • 596阅读
  • 0回复

ngx_brotli 已经不再需要编译依赖,附最新教程

级别: 论坛版主
发帖
9092
云币
12789
— 本帖被 不靠谱贝贝 设置为精华(2017-04-28) —
前言 .j,&/y&  
Q 7?4GxMj  
之前有一篇文章写过安装 google/ngx_brotli ,详情:《Nginx 使用 Brotli 压缩算法,Better than Gzip Compression》 ,不过,由于 ngx_brotli 程序的发展,所以之前的教程不再适合新的 ngx_brotli 了。 s7gf7 E#Y  
2^j9m}`  
dv>zK#!  
关于 brotli 的具体介绍,还请看上一篇文章。 XBBRB<l)  
A~t7I{`  
说明 L 3Iz]D3s  
ucO]&'hu:  
之前 google/ngx_brotli 是需要依赖 bagder/libbrotli 库的,这就导致了安装比较复杂而且 libbrotli 还容易安装出错(写脚本的时候就死在这个上了,真心体会)。 V)@scB|>,  
U%olH >1K  
@TT[H*,  
现在 google/ngx_brotli 从 16年12月的版本起,开始内置 google/brotli,以为着我们不需要额外编译 bagder/libbrotli 库了,让安装变得简单起来了。 nhxl#  
au v\fR :  
3Pq)RD|hn  
注: 除 google/ngx_brotli 之外,还有 cloudflare/ngx_brotli_module,安装方法和本文一样,不过后者很久没更新了,而且也不是谷歌亲儿子应用,所以还是后者好。 Ku# _   
ZaV@}=Rd8  
安装 Ke!O^zP92  
:@L5=2Z+  
例如,我们将 google/ngx_brotli 下载并解压到 /tmp/ngx_brotli 目录。 n(MEG'9}  
  1. cd /tmp
  2. git clone https://github.com/google/ngx_brotli.git
l\GNd6)H  
C <)&qx3  
然后在下载 google/brotli 并解压到 /tmp/ngx_brotli/deps/brotli Sn,z$-;h;  
  1. cd ngx_brotli/deps/brotli
  2. git clone git@github.com:google/brotli.git
R["7%|RV  
P$yJA7]j;%  
编译 #v<+G=r*O  
wm4e:&  
然后编译 nginx 加入 --add-module=/tmp/ngx_brotli 参数 cke[SUH,  
  1. cd nginx-1.10.3
  2. ./configure --add-module=/tmp/ngx_brotli
4]R3*F  
=Ch#pLmH  
设置 r~t7Z+PXF  
`VbG%y&I  
编辑 nginx.conf 文件,在http配置段增加以下配置,然后重启即可 _Fjv.VQ,  
  1. brotli on;
  2. brotli_comp_level 6;
  3. brotli_buffers 16 8k;
  4. brotli_min_length 20;
  5. brotli_types *;
_XtY/7n  
e%\KI\u  
如果,nginx 反代的程序也启了 gzip 压缩,就要设置 反代禁用 gizp i=UJ*c  
反代代码中添加:
  1. proxy_set_header Accept-Encoding "";
gsH_pG-jU  
x(~l[hT  
题外话 ShP V!$0  
R& A.F+Zgt  
因为不用安装 libbrotli 了,所以也不会有
  1. nginx: error while loading shared libraries: libbrotlienc.so.1: cannot open shared object file: No such file or directory
xg&vZzcl  
,还是很棒棒的。 j.*}W4`Q_  
[ 此帖被ivmmff在2017-04-28 15:15重新编辑 ]
QQ:1251205255,仅提供付费服务。
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个