Gzip的压缩分为动态压缩和静态压缩。动态压缩简而言之就是nginx上的资源是以原始文件形式存在的,当返回给浏览器的时候再进行压缩,浏览器收到压缩文件再解压缩。静态压缩就是nginx上的资源不是原始文件,而是提前压缩好的压缩文件,直接返回给浏览器,浏览器再进行解压缩。
一、Gzip动态压缩
注意:gzip的动态压缩启用之后,sendfile 的零拷贝就失效了。
作用域 http, server, location
配置参数说明:
1、gzip on;
开关,默认关闭
2、gzip_buffers 32 4k
缓冲区大小,前面的32表示用32个缓冲区,后面的是每个缓冲区大小是4K,32位操作系统建议配置32 4k,64位操作系统建议配置16 8k
3、gzip_comp_level 1;
压缩等级 1-9,数字越大压缩比越高
4、gzip_http_version 1.1;
使用gzip的最小版本
5、gzip_min_length
设置将被gzip压缩的响应的最小长度。 长度仅由“Content-Length”响应报头字段确定。超过这个值才进行压缩,小于这个值则不压缩。以K为单位,当值为0时,所有页面都进行压缩
6、gzip_proxied
作为反向代理时,根据上游服务器返回的头信息判断是否进行压缩,如果nginx不是作为反向代理服务器,比如是静态资源服务器,则gzip_proxied配置无效
gzip_proxied的参数有以下几种,值可以多选:
- off 关闭所有代理结果的数据的压缩
- expired - 启