Nginx服务器Gzip压缩

指令

    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 {

        ……

}

}

点赞