这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除。
这个模块允许在文件传输过程中使用gzip压缩。
如下例:
gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml; gzip_disable "MSIE [1-6]\.";
可以使用$gzip_ratio变量指定压缩比率。
指令
gzip
语法:gzip on|off
默认值:gzip off
使用字段:http, server, location, location中的if字段
指定是否启用gzip压缩。
gzip_buffers
语法:gzip_buffers number size
默认值:gzip_buffers 4 4k/8k
使用字段:http, server, location
指定缓存压缩应答的缓冲区数量和大小,如果不设置,一个缓存区的大小为分页大小,根据环境的不同可能是4k或8k。
gzip_comp_level
语法:gzip_comp_level 1..9
默认值:gzip_comp_level 1
使用字段:http, server, location
指定压缩等级,其值从1到9,1为最小化压缩(处理速度快),9为最大化压缩(处理速度慢)。
gzip_disable
语法:gzip_disable regex
使用字段:http, server, location
使用正则表达式来指定某些不需要gzip压缩的浏览器(将和User-Agents进行匹配)。依赖于PCRE库。在0.6.23版本中首次使用。
0.7.63版本以后,你可以为IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩。
gzip_disable "msie6";
gzip_http_version
语法:gzip_http_version 1.0|1.1
默认值:gzip_http_version 1.1
使用字段:http, server, location
是否根据HTTP请求版本来启用gzip压缩。
当HTTP版本为1.0时,Vary: Accept-Encoding没有被设置,这将引起某些代理缓存失效,可以使用add_header,同样,在使用这个版本时Content-Length也没有设置,因此Keepalive不能在这个版本使用。
gzip_min_length
语法:gzip_min_length length
默认值:gzip_min_length 0
使用字段:http, server, location
设置被压缩的最小请求,单位为bytes。少于这个值大小的请求将不会被压缩,这个值由请求头中的Content-Length字段决定。
gzip_proxied
语法:gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] …
默认值:gzip_proxied off
使用字段:http, server, location
根据某些请求和应答来决定是否在对代理请求的应答启用压缩,事实上,代理请求取决于请求头中的“Via”字段,指令中可以同时指定多个不同的参数:
off - 为所有代理请求禁用压缩。 expired - 当“Expires”头禁用缓存时启用压缩。 no-cache - 当“Cache-Control”头设置为no-cache时启用压缩。 no-store - 当“Cache-Control”头设置为no-store时启用压缩。 private - 当“Cache-Control”头设置为private时启用压缩。 no_last_modified - 当“Last-Modified”没有定义时启用压缩。 no_etag - 没有“ETag”头时启用压缩。 auth - 当有一个“Authorization”头时启用压缩。 any - 为所有请求启用压缩。
gzip_types
gzip_types mime-type [mime-type …]
默认值:gzip_types text/html
使用字段:http, server, location
为除“text/html”之外的MIME类型启用压缩,“text/html”总是会被压缩。
gzip_vary
ggzip_vary on|off
默认值:gzip_vary off
使用字段:http, server, location
启用应答头“Vary: Accept-Encoding”,注意,由于一个bug将导致IE 4-6无法缓存内容。