手记

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 {
        ……
}
}
0人推荐
随时随地看视频
慕课网APP