gzip最早由Jean-loup Gailly和Mark Adler创建,用于unix系统的文件压缩。我们在linux中经常会用到后缀为.gz的文件,它们就是gzip格式的。gzip格式已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。http协议上的gzip编码是一种用来改进web应用程序性能的技术。大流量的web站点常常使用gzip压缩技术来让用户感受更快的速度,当有人来访问这个服务器中的网站时,服务器中会将网页中指定的内容压缩后传输到来访者的电脑,由来访者电脑上的浏览器负责解压并展现出来。一般纯文本内容可压缩到原大小的40%。这样就减少了传输所需要占用的带宽,因为服务器需要多做一道压缩的工艺,所以开启gzip也会一定程度上增加服务器的负载。
nginx开启gzip
gzip on;
gzip_min_length 16k;
gzip_comp_level 1;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/png image/svg+xml;
gzip_vary on;
gzip_disable "msie6";
gzip_buffers 32 4k;
gzip_http_version 1.0;参数详情
- gzip_min_length
设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取,建议设置成大于1k的字节数,小于1k可能会越压越大;
- gzip_comp_level
gzip压缩比,压缩级别1-9,级别越高压缩率越大,但所需的压缩时间也会变得更长;
- gzip_types
设置对哪几类文件进行压缩,匹配MIME类型;
- gzip_vary
增加响应头”Vary: Accept-Encoding”;
- gzip_disable
定义什么情况下不进行压缩,主要针对ie6之前得浏览器;
- gzip_buffers
开启后会增加响应头”Vary: Accept-Encoding”;
- gzip_http_version
设置用于处理请求压缩的缓冲区数量和大小,比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值。

