前端性能优化四十:花裤衩模板gzip的nginx配置

server {
    gzip on;
    gzip_buffers 4 16K;
    gzip_comp_level 6;
    gzip_min_length 100k;
    gzip_types text/plain application/x-javascript application/javascript application/json text/css application/xml text/javascript application/x-httpd-php;
    gzip_disable "MSIE [1-6].";
    gzip_http_version 1.1;
    gzip_vary on;
}

(1). 参数解释:

// 是否开启gzip
gzip on|off;
// 压缩的页面最小字节数,超出进行压缩
// 页面字节数从header头中的Content-Length中进行获取,默认值是0.
// 太小就不要压缩了,意义不大
gzip_min_length 100k;
// 缓冲区(压缩在内存中缓冲几块?每块多大?)
// 获取多少内存用于缓存压缩结果:'4 16k'表示以16k*4为单位获取
gzip_buffers 4 16k;
// 压缩级别(压缩比1-9,级别越高,压的越小,越浪费CPU计算资源)
// 越小压缩效果越差,但是越大处理越慢,一般取中间值(官网建议6)
gzip_comp_level 6;
// 对哪些类型的文件用压缩,如txt、xml、html、css、js等
// 对特定的MIME类型生效,其中'text/html'被系统强制启用
gzip_types text/plain;
// 识别http协议的版本,不支持gzip自解压的浏览器,用户会看到乱码
gzip_http_version 1.1  
// 是否传输gzip压缩标志
// 和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持
// 避免不支持的也压缩,根据客户端的HTTP头来判断,是否需要压缩
gzip_vary on|off;
// nginx做为反向代理时启用,off(关闭所有代理结果的数据的压缩),expired(启用压缩,如果header头中包括"Expires"头信息),no-cache(启用压缩,header头中包含"Cache-Control:no-cache"),no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含"Last-Modified"),no_etag(启用压缩,如果header头中不包含"Etag"头信息),auth(启用压缩,如果header头中包含"Authorization"头信息)
gzip_proxied off
// IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩
// 指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库
gzip_disable "MSIE [1-6]."

(2). 注意:

. 图片/mp3的二进制文件:
    a. 不必压缩,因为压缩率比较小,同时会耗费CPU资源的.
    b. 图片压缩并不能实际减少文件大小,反而会导致打包后生成很多同大小的gz文件.. 比较小的文件不必压缩.

你可能感兴趣的:(前端,性能优化,nginx,webpack,自动化,前端框架,系统架构)