nginx启用brotli压缩算法 ,经过实地验证,brotli和gzip可以共存….

來源: nginx启用brotli压缩算法 | Jackie的家

 

 

配置说明

指令介绍

ngx_brotli定义了如下指令:

  • brotli,是否允许动态压缩响应数据,可选值为onoff,默认值为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结尾的压缩文件,可选值为onoffalways,默认值为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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *