详解Nginx的Gzip压缩

作者: 温新

分类: 【Nginx】

阅读: 2459

时间: 2021-10-01 13:15:51

作者:温新

时间:2021-02-28

为什么要使用Gzip

众所周知,Web中存在含有大量的非常消耗资源的文件,如zip、图片等。如有一个4M的图片,从用户发出请求到浏览器所呈现出来,这个过程中,图片被渲染出来的速度可能很慢,而gzip就是对这些消耗资源的文件进行压缩呈现,减轻服务的负担。

gzip有如下几个作用:

1)压缩资源;

2)提高传输效率;

3)减轻服务器负担;

4)利于用户体验。

开启gzip

gzip位于http区块中,如下案例

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="">http</span> {</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 开启gzip</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip</span> on;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 响应页数据上限</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip_min_length</span> 1024;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 缓存空间大小</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip_buffers</span> 416k;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 压缩级别</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip_comp_level</span> 2;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 压缩文件类型</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip_types</span> text/<span style="">plain application</span>/<span style="">x-javascript</span> text/<span style="">css image</span>/<span style="">png image</span>/jpeg;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 启用压缩标识</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gzip_vary</span> on;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style=""># 检查压缩文件类型</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">gunzip_static on</span>;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    </span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    <span style="">server</span> {}</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">}</span>

gzip参数详解

gzip指令

功能:是否开启giz压缩。默认为off不开启。

语法:gzip on | off

gzip_buffers指令

功能:设置压缩文件所使用缓存空间的大小。

语法:gzip_buffers number szie

参数:number,指定Nginx服务器需要向系统申请缓存空间的个数;

size,指定每个缓存空间的大小。

案例

<span style="box-sizing: border-box; padding-right: 0.1px;"># 申请32个存储空间,第个大小4k</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="">gzip_buffers</span> <span style="">32 4k</span>;</span>

gzip_comp_level

功能:设置压缩程度,包含1-9级。级别1表示压缩程序最低,压缩效率最高;9表示压缩程度最高,压缩效率最低,最费时间。默认级别1

语法:gzip_comp_level level

压缩级别并不是越高越好,需要根据自己的情况来设定压缩级别。

gzip_disable

功能:针对不同种类客户端发起的请求,可以选择性地开启和关闭Gzip功能。

语法:gzip_disabled regex

参数:regex是根据客户端的浏览器标志进行设置。

案例:gzip_disabled MSIE [4-6]\.匹配UC字符串中包含MSIE4、MSIE5、MSIE6的所有浏览器不进行压缩。

gzip_http_version

功能:设置开启gzip功能的最低http协议版本。

语法:gzip_http_version 1.0|1.1

gzip_min_length

功能:设置页面字节数,当响应页面的大小大于该值时,才启用gzip功能。默认值 20

语法:gzip_min_length length;

案例:gzip_min_length 1024

Gzip压缩功能对大小数据的压缩效果明细,但若压缩较小的数据,则可能出现越压缩数据量越大的情况,因此应根据响应页面的大小,选择性地开启或关闭该功能。

gzip_type

功能:设置压缩类型

语法:gzip_type mime-type

案例:gzip_type text/plain image/png

gunzip_buffers

功能:设置nginx服务器解压gzip文件使用缓存空间的大小。

语法:gunzip_buffers number size

我是温新

每天进步一点点,就一点点

请登录后再评论