nginx的gzip压缩相关设置优化1–ngx_http_gzip_module模块


好久没写了,最近太忙了
先喝口鸡汤,“衡量一个人的成功标志,不是看他到达顶峰的高度,而是看他跌落谷底时的反弹力”。
nginx中gzip的主要作用就是用来减轻服务器的带宽问题,经过gzip压缩后的页面大小可以变为原来的30%甚至更小(根据压缩比而定),这样用户浏览页面时的速度会快很多。gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压缩并解析。目前的大多数浏览器都支持解析gzip压缩过的页面。
gzip的相关配置可以在http块、server块、location块
在这三个块中通过三个模块来实现配置,分别是ngx_http_gzip_module(压缩模块)、ngx_http_gzip_static_module(静态压缩)、ngx_http_gunzip_module(解压缩)
示例

    gzip on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_buffers 16 8k;
    gzip_disable "MSIE [1-6].(?!.*SV1)";

一、ngx_http_gzip_module模块

ngx_http_gzip_module模块主要是对gzip的开启以及级别配置实时响应的数据进行压缩
配置指令共有9个

1、gzip

语法 gzip on | off;
默认值 gzip off;
说明:开启或关闭gzip功能,值友开启,其他指令才有效

2、gzip_buffers

语法 gzip_buffers number size;
默认值 gzip_buffers 32 4k | 16 8k;
说明:zip缓冲区的数量和大小,总大小为number*size,其中size为内存页一页的大小,一般不需要改动,只需要改动number即可。

3、gzip_comp_level

语法 gzip_comp_level level;
默认值 gzip_comp_level 1;
说明:gzip的压缩比,1-9个数量级,数据越大,压缩的程度越高,压缩后占用空间越小,但是效率最低,更加消耗CPU,一般为6即可

4、gzip_disable

语法 gzip_disable regex ...;
说明:如果请求的”User-Agent”头信息能被指定的正则表达式匹配,则对响应禁用gzip压缩功能。主要是为了兼容不支持gzip压缩的浏览器,比如IE6

5、gzip_min_length

语法 gzip_min_length length;
默认值 gzip_min_length 20;
说明:设置一个将要被压缩的响应的最小长度值(即长度小于这个值的响应将不会被压缩)。设置这项的主要原因是在数据过小的情况下,压缩效果不明显,不如不进行压缩,建议设置成512,只对大于512的响应数据进行压缩(页面字节数从header头中的Content-Length中进行获取)

6、gzip_http_version

语法 gzip_http_version 1.0 | 1.1;
默认值 gzip_http_version 1.1;
说明:开启压缩响应请求的最低http版本,原因是一些早起的浏览器采用的http较低,浏览器不支持gzip,会出现乱码的情况。现在基本上所有浏览器都支持1.1版本,所以保持默认值即可

7、gzip_proxied

语法 gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ;
默认值 gzip_proxied off;
说明:该指令在nginx使用反向代理的时候起作用,是否压缩取决于请求头中的“Via”字段,指令中可以同时指定多个不同的参数。根据请求和响应来决定启用或禁用对代理请求的响应的压缩
(1)off:禁用对所有代理请求的压缩
(2) expired:当响应头中包含过期时间时,启用压缩
(3) no-cache:当响应头的Cache-Control字段为no-cache时,启用压缩
(4) no-store:当响应头的Cache-Control字段为no-store时,启用压缩
(5) private:当响应头的Cache-Control字段为no-store时,启用压缩
--cache_control用于设置缓存机制
(6)no_last_modified:当响应头不包含响应最后修改时间字段时,启用压缩。
(7)no_etag:当想用头中不包含被请求变量的实体值时,启用压缩
(8)auth:当响应头包含用于授权http证书的Authorization字段时,启用压缩
开启基础认证的请求报文
(9)any:岁所有代理请求开启压缩。

8、gzip_types

语法 gzip_types mime-type ...;
默认值 gzip_types text/html;
说明:对text/html之外的特定MIME类型启用压缩。特殊值*匹配所有MIME类型。text/html类型的响应总是会被压缩。可以设置为gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

9、gzip_vary

语法 gzip_vary on | off;
默认值 gzip_vary off;
说明:该指令用于只用gzip功能时,是否发送Vary: Accept-Encoding响应头字段,通知接收方响应使用了gzip压缩
白发渔樵

白发渔樵

发表评论

电子邮件地址不会被公开。 必填项已用*标注