指令
gzip
gzip_buffers
gzip_comp_level
gzip_disable
gzip_min_length
gzip_http_version
gzip_proxied
gzip_types
gzip_vary
配置案例
gzip on;
gzip_min_length 1000;
gzip+proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
一、ngx_http_gzip_module
指令
Syntax: gzip on | off;
Default: gzip off;
Context: http, server, location, if in location
开启或关闭响应压缩功能
Syntax: gzip_buffers number size;
Default: gzip_buffers 32 4k|16 8k;
Context: http, server, location
设置用于压缩响应的buffers的数量和大小,默认,buffer的大小等于内存页。可能是4k或8k取决于平台。
Syntax: gzip_comp_level level;
Default: gzip_comp_level 1;
Context: http, server, location
设置响应的压缩级别,可用的值为1-9
Syntax: gzip_disable regex …;
Default: —
Context: http, server, location
This directive appeared in version 0.6.23.
禁止压缩匹配的User-Agent头部信息。
Syntax: gzip_min_length length;
Default: gzip_min_length 20;
Context: http, server, location
设置可压缩最小响应大小,长度取决于Content-length响应头部。
Syntax: gzip_http_version 1.0 | 1.1;
Default: gzip_http_version 1.1;
Context: http, server, location
设置可用被压缩的最小的HTTP版本
Syntax: gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag
Default: gzip_proxied off;
Context: http, server, location
开启或禁止压缩代理服务器的响应,请求被代理通过”Via”头部,这个指令接受多个惨呼
off:禁止压缩所有的代理服务器请求,忽视其它参数
expired:如果响应头部包含”Expires”元素,并且值为禁止缓存则开始压缩。
no-cache :如果响应头部包含”cache-control”元素并且值为no-cache参数,开始压缩。
no-store :同上
private :同上
no_last_modified: 如果响应头部不包含”Last-Modified”元素开始压缩。
no-etag: 如果响应不包含Etag元素就开启压缩
any :压缩所有的代理请求。
Syntax:gzip_types mime-type …;
Default:
gzip_types text/html;
Context:http, server, location
开启除了”text/html”之外的可以压缩的类型。,*代表压缩所有类型,”text/html”会一直被压缩
Syntax: gzip_vary on | off;
Default: gzip_vary off;
Context: http, server, location
开启或禁止插入Vary: Accept-Encoding,响应头部信息,如果指令gzip,gzip_static或gunzip指令被激活的话。
二、附录:
2.1 、ngx_http_gzip_static_module
这个模块允许发送已经压缩过的以”.gz”结尾的文件名扩展。主要负责搜索和发送经过压缩过的数据,如果客户端请求的数据在之前被压缩过,并且客户端浏览器支持Gzip压缩,就直接返回压缩后的数据。
这个模块默认没有编译,需要在configure的时候指定–with-http_gzip_static_module才能启用
Syntax: gzip_static on | off | always;
Default: gzip_static off;
Context: http, server, location
当使用always的时候,gzip文件将会一直被使用,而不考虑客户端是否支持。如果磁盘上都是压缩的文件或者ngx_http_gunzip_module使用的时候非常有用。
2.2、 ngx_http_gunzip_module
用于过滤解压带有” Content-Encoding: gzip”响应的信息,但是客户端不支持gzip编码方式的时候。这个模块很有用,当它期望存储压缩的数据来节约弓箭和减少磁盘IO开销。
模块默认没有编译,需要在配置的时候指定–with-http_gunzip_module开启。
Syntax: gunzip on | off;
Default: gunzip off;
Context: http, server, location
Syntax: gunzip_buffers number size;
Default: gunzip_buffers 32 4k|16 8k;
Context: http, server, location
这两条指令,同上述gzip压缩功能。
案例:
http{
……
gzip on; #开启gzip压缩功能
gzip_min_length 1024; #响应页述书上限
gzip_buffer 4 16k; #缓存空间大小
gzip_comp_level 2; #压缩级别为2
gzip_types text/plain application/x-javascript text/css application/xml;#压缩文件类型
gzip_vary on; #启用与压缩标示
gzip_static on; #开启gzip_static功能
gunzip on; #开启gunzip 功能
……
server {
……
}
}