Nginx 的 gzip 模块用于对响应数据进行压缩,以减少网络传输的数据量,提高网页加载速度,以下是 Nginx 下 gzip 配置参数的详解:
1、gzip on
语法:gzip on | off
默认值:gzip off
作用域:http, server, location, if in location
说明:开启或关闭 gzip 模块。
2、gzip_min_length
语法:gzip_min_length length
默认值:0
作用域:http, server, location
说明:设置允许压缩的页面最小字节数,页面字节数从 header 头中的 ContentLength 中获取,建议设置成大于 1k 的字节数,小于 1k 可能会越压越大。gzip_min_length 1024
。
3、gzip_buffers
语法:gzip_buffers number size
默认值:gzip_buffers 4 4k/8k
作用域:http, server, location
说明:设置系统获取几个单位的缓存用于存储 gzip 的压缩结果数据流。4 4k
代表以 4k 为单位,按照原始数据大小以 4k 为单位的 4 倍申请内存。4 8k
代表以 8k 为单位,按照原始数据大小以 8k 为单位的 4 倍申请内存,如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储 gzip 压缩结果。
4、gzip_comp_level
语法:gzip_comp_level 1..9
默认值:gzip_comp_level 1
作用域:http, server, location
说明:设置 gzip 压缩等级,等级越小压缩速度越快但文件压缩比越小,反之速度越慢但文件压缩比越大。
5、gzip_types
语法:gzip_types mimetype [mimetype ...]
默认值:gzip_types text/html
作用域:http, server, location
说明:匹配 MIME 类型进行压缩,无论是否指定,“text/html”类型总是会被压缩的,如果需要压缩其他类型的文件,可以添加相应的 MIME 类型。gzip_types text/plain application/xjavascript text/css text/xml application/xml;
。
6、gzip_vary
语法:gzip_vary on | off
默认值:gzip_vary off
作用域:http, server, location
说明:启用应答头 "Vary: AcceptEncoding"。
7、gzip_proxied
语法:gzip_proxied [off|expired|nocache|nostore|private|no_last_modified|no_etag|auth|any] ...
默认值:gzip_proxied off
作用域:http, server, location
说明:Nginx 作为反向代理时启用,匹配的前提是后端服务器必须要返回包含 “Via” 的 header 头。
off
关闭所有的代理结果数据的压缩。
expired
启用压缩,header 头中包括 “Expires” 头信息。
nocache
启用压缩,header 头中包含 “CacheControl:nocache” 头信息。
nostore
启用压缩,header 头中包含 “CacheControl:nostore” 头信息。
private
启用压缩,header 头中包含 “CacheControl:private” 头信息。
no_last_modified
启用压缩,header 头中不包含 “LastModified”。
no_etag
启用压缩,header 头中不包含 “ETag” 头信息。
auth
启用压缩,header 头中包含 “Authorization” 头信息。
any
无条件启用压缩。
8、gzip_disable
语法:gzip_disable msie6 [...msie10]
默认值:无
作用域:http, server, location
说明:指定哪些不需要 gzip 压缩的浏览器(将和 UserAgents 进行匹配),依赖于 PCRE 库。gzip_disable msie6
表示禁止 IE5.5 和 IE6 SP1 使用 gzip 压缩。
通过合理配置这些参数,可以在保证网站性能的同时,有效地减少网络传输的数据量,提高用户访问速度。