怎么为Nginx启用Brotli压缩算法
本文小编为大家详细介绍"怎么为Nginx启用Brotli压缩算法",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么为Nginx启用Brotli压缩算法"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
什么是 brotli 压缩算法
brotli最初发布于2015年,用于网络字体的离线压缩。google软件工程师在2015年9月发布了包含通用无损数据压缩的brotli增强版本,特别侧重于http压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式api已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。
与常见的通用压缩算法不同,brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和html文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。
使用brotli替换deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。使用brotli进行流压缩的内容编码类型已被提议使用"br"。
安装
1.下载 brotli
git clone https://github.com/google/ngx_brotlicd ngx_brotli && git submodule update --init
2.编译
在原有的编译配置后增加 -add-module=/opt/nginx/ngx_brotli
例如
复制代码 代码如下:
./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/opt/nginx/pcre-8.41 --with-http_ssl_module --with-zlib=/opt/nginx/zlib-1.2.11 --with-openssl=/opt/nginx/openssl-1.0.2n --add-module=/opt/nginx/ngx_brotli --with-http_v2_module
配置,在 http 段加入
http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; keepalive_timeout 65; #brotli compression brotli on; brotli_comp_level 6; brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; ……
重启,刷新页面查看 header,发现有
accept-encoding:gzip, deflate, br
如图所示
即表示开启了 brotli 压缩
配置说明
指令介绍
定义了如下指令:
brotli,是否允许动态压缩响应数据,可选值为on和off,默认值为off。样例如下:
brotli on;
brotli_types,动态压缩启用时,允许压缩的mime types,默认值为text/html。样例如下:
brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript;
brotli_static,是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off和always,默认值为off。样例如下:
brotli_static off;
brotli_comp_level,压缩级别,可选值范围为0~11,默认值为6。样例如下:
brotli_comp_level 11;
brotli_buffers,压缩响应数据时使用的缓冲区的数量和大小。样例如下:
brotli_buffers 16 8k;
brotli_window,brotli使用的窗口值,默认值为512k。样例如下:
brotli_window 512k;
brotli_min_length,响应数据的最小长度,低于该值将不使用brotli算法执行压缩操作。brotli算法使用content-length来确定响应数据的长度。样例如下:
brotli_min_length 20;
读到这里,这篇"怎么为Nginx启用Brotli压缩算法"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。