linux nginx gzip 配置详解

先看示例

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

打开nginx.conf找到gzip修改就可以了。

1、gzip

开启或者关闭gzip模块。
默认值: gzip off

2、gzip_buffers

设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。
默认值: gzip_buffers 4 4k/8k

3、gzip_comp_level

gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
默认值: gzip_comp_level 1

4、gzip_min_length

设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024。
默认值是gzip_min_length 0,不管页面多大都压缩。

5、gzip_http_version

识别http的协议版本。由于早期的一些浏览器或者http客户端,可能不支持gzip自解压,用户就会看到乱码,所以做一些判断还是有必要的。 注:21世纪都来了,现在除了类似于百度的蜘蛛之类的东西不支持自解压,99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。
默认值 gzip_http_version 1.1

6、gzip_proxied

Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含”Via”的 header头。
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_proxied off

7、gzip_types

匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。
默认值: gzip_types text/html

8、gzip_disable

使用正则表达式来指定某些不需要gzip压缩的浏览器(将和User-Agents进行匹配)。依赖于PCRE库。在0.6.23版本中首次使用。
0.7.63版本以后,你可以为IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩。

9、gzip_vary

启用应答头“Vary: Accept-Encoding”,注意,由于一个bug将导致IE 4-6无法缓存内容。
默认值:gzip_vary off

其他

内置变量 $gzip_ratio 可以获取到gzip的压缩比率。

参考 http://wiki.nginx.org/HttpGzipModule

  1. 暂无评论

  1. 暂无 Trackback

return top