一、Gzip模块简介

ngx_http_gzip_module模块是使用“ gzip”方法压缩响应的过滤器。有助于数据的传输。

二、示例配置

location /{

gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/json application/javascript application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
}

三、相应选项的介绍

1.gzip

启用或禁用响应的压缩。

语法:	gzip on | off;
默认:	gzip off;
配置的位置:	http,server,location

2.gzip_buffers

设置用于压缩响应的numbersize的缓冲区。默认情况下,缓冲区大小等于一个内存页。

语法:	gzip_buffers number size;
默认:	gzip_buffers 32 4k | 16 8k;
配置的位置:	http,server,location

3.gzip_comp_level

设置level响应的gzip压缩。可接受的值范围是1到9。建议值为3-4!

语法:	gzip_comp_level level;
默认:	gzip_comp_level 1;
配置的位置:	http,server,location

4.gzip_http_version

 设置压缩响应所需的最低HTTP版本请求。

语法:	gzip_http_version 1.0 | 1.1;
默认:	gzip_http_version 1.1;
配置的位置:	http,server,location

5.gzip_min_length

设置将被压缩的响应的最小长度。长度仅由“ Content-Length”响应头字段确定。

语法:	gzip_min_length length;
默认:	gzip_min_length 20;
配置的位置:	http,server,location

6.gzip_proxied

根据请求和响应为代理请求启用或禁用响应的压缩。请求被代理的事实由“ Via”请求标头字段的存在来确定。

语法:	gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
默认:	gzip_proxied off;
配置的位置:	http,server,location

off:禁用所有代理请求的压缩,而忽略其他参数;
expired:如果响应头包含“ Expires”字段,并且该值具有禁用缓存的值,则启用压缩;
no-cache:如果响应头包含带有“ no-cache”参数的“ Cache-Control”字段,则启用压缩;
no-store:如果响应头包含带有“ no-store”参数的“ Cache-Control”字段,则启用压缩;
private:如果响应头包含带有“ private”参数的“ Cache-Control”字段,则启用压缩;
no_last_modified:如果响应头不包含“ Last-Modified”字段,则启用压缩;
no_etag:如果响应头不包含“ ETag”字段,则启用压缩;
auth:如果请求标头包含“授权”字段,则启用压缩;
any:为所有代理请求启用压缩。

7.gzip_type

特殊值“ *”与任何MIME类型(0.8.29)匹配。

语法:	gzip_types mime-type ...;
默认:	zip_types text / html;
配置的位置:	http,server,location 

更多的MIME类型见https://www.w3school.com.cn/media/media_mimeref.asp