Nginx的gzip配置参数说明

gzip

决定是否开启gzip模块

param:on|off

example:gzip on;

gzip_buffers

设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间

param1:int

param2:int(k) 后面单位是k

example: gzip_buffers 4 8k;

gzip_comp_level

设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大

param:1-9

example:gzip_com_level 1;

gzip_min_length

当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩

param:int

example:gzip_min_length 1000;

gzip_http_version

用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略

param: 1.0|1.1

example:gzip_http_version 1.0

gzip_proxied

Nginx做为反向代理的时候启用,

param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]

expample:gzip_proxied no-cache;

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_modified – 启用压缩,如果header中包含”Last_Modified”头信息

no_etag – 启用压缩,如果header中包含“ETag”头信息

auth – 启用压缩,如果header中包含“Authorization”头信息

any – 无条件压缩所有结果数据

gzip_types

设置需要压缩的MIME类型,非设置值不进行压缩

param:text/html|application/x-javascript|text/css|application/xml

example:gzip_types text/html;

gzip_vary 

gzip_vary on;

//和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持。

因此,为避免浪费不支持的也压缩,需要根据客户端的HTTP头来判断,是否需要压缩。

gzip_disable

gzip_disable的设置是禁用IE6的gzip压缩,又是因为杯具的IE6

IE6的某些版本对gzip的压缩支持很不好,会造成页面的假死,今天产品的同学就测试出了这个问题

后来调试后,发现是对img进行gzip后造成IE6的假死,把对img的gzip压缩去掉后就正常了

为了确保其它的IE6版本不出问题,所以就加上了gzip_disable的设置

Demo:

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

#gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

gzip_vary off;

gzip_disable "MSIE [1-6]\.";