Nginx的gzip配置参数说明

gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,可以极大的加速网站,测试发现本站压缩比能达到65%以上,值得一试。

gzip:决定是否开启gzip模块

param: on|off
example: gzip on;

gzip_buffers:设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间

param1: int
param2: int(k) 后面单位是k
example: gzip_buffers 4 8k;

gzip_comp_level:设置gzip压缩等级,等级越低压缩速度越快文件压缩比越小

param: 1-9
example: gzip_com_level 1;

gzip_min_length:当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩

param: int
example: gzip_min_length 1000;

gzip_http_version:用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,目前此项基本可以忽略

param: 1.0|1.1
example: gzip_http_version 1.0

gzip_proxied:Nginx做为反向代理的时候启用,

param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]
expample:gzip_proxied no-cache;

参数说明:

off – 关闭所有的代理结果数据压缩
expired – 启用压缩,如果header中包含”Expires”头信息
no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
private – 启用压缩,如果header中包含”Cache-Control:private”头信息
no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
no_etag – 启用压缩,如果header中包含“ETag”头信息
auth – 启用压缩,如果header中包含“Authorization”头信息
any – 无条件压缩所有结果数据

gzip_types:设置需要压缩的MIME类型,非设置值不进行压缩

param:text/html|application/x-javascript|text/css|application/xml
example:gzip_types text/html;

最后来个示例:Demo

gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/html application/x-javascript text/css application/xml;

gzip on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;
gzip_proxied        expired no-cache no-store private auth;
gzip_disable        "MSIE [1-6]\.";

以上代码可以插入到 nginx.conf 的 http{...} 整个服务器的配置里,也可以插入到虚拟主机的 server{...} 或者下面的location模块内。

保存退出 # :wq

重新加载Nginx # /usr/local/nginx/sbin/nginx -s reload

说一句,启用GZIP相当占用资源。

最后测试 GZIP 是否启用:http://checkgzipcompression.com/

也可使用如下命令:

curl -I -H "Accept-Encoding: gzip, deflate" "https://yangjunwei.com"

返回最后一行 Content-Encoding: gzip 即为成功启用gzip。