brotli是谷歌开源的一个比较风骚的压缩算法,相比gzip这些还是有比较明显的优势,使用https的站点,在启用brotli后,还是可以获得一个比较客观的效率提升,具体的啥啥啥,自行百度,直接进入正题,编译nginx支持brotli:
为brotli创建一个目录,这里我们定义现在在/root目录下:
mkdir brotli
cd brotli
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
为brotli赋上骚骚的权限
chmod +x /root/brotli/libbrotli/ngx_brotli/config
在编译nginx的时候加上参数即可
--add-module=/root/brotli/libbrotli/ngx_brotli
这样nginx就已经支持brotli了,接下来在nginx的配置中配置参数即可:
brotli on;
brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon;
brotli_comp_level 4;
brotli_buffers 16 8k;
brotli_window 512k;
brotli_min_length 20;
reload nginx 即生效,经过我的观察,brotli和gzip可以共存,在同时压缩同一类文件时brotli优先级会高一些;有兴趣捣鼓的朋友,可以分配一下types来实现gzip和brotli针对性的压缩,例如,将静态文件交给brotli,php这类页面交给gzip,这样可能会有更好的效果。