來源: nginx启用brotli压缩算法 | Jackie的家
配置说明
指令介绍
ngx_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;
完整样例
http {
...
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_buffers 128 32k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript;
brotli on;
brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript;
brotli_static off;
brotli_comp_level 11;
brotli_buffers 16 8k;
brotli_window 512k;
brotli_min_length 20;
...
}
经过实地验证,brotli和gzip可以共存。这是一个好消息,意味着Jackie可以在项目中使用启用brotli算法支持的nginx。
对于支持brotli算法的浏览器,比如Chrome 49之后的版本,使用开发者工具检查网络通信时,可以看到如下的HTTP响应头。
Content-Encoding: br