nginx开启和配置gzip

gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,可以极大的加速网站。

gzip
决定是否开启gzip模块
eg: gzip on;

gzip_buffers 
设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
param2: int(k) 后面单位是k
eg: gzip_buffers 4 8k;

gzip_comp_level
设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
param: 1-9
eg: gzip_com_level 1;

gzip_min_length
当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩
param: int
eg: gzip_min_length 1000;

gzip_http_version
用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略
param: 1.0|1.1
eg: gzip_http_version 1.0;

gzip_proxied
Nginx做为反向代理的时候启用,
param: off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]
eg: gzip_proxied no-cache;
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_types
设置需要压缩的MIME类型,非设置值不进行压缩
param: text/html|application/x-javascript|text/css|application/xml
eg: gzip_types text/html;

对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。以下是以nginx服务器为例开启gzip的一般代码。

#启用gzip
gzip on;
#需要压缩文件的最小尺寸,单位是B
gzip_min_length  1100;
#gzip文件缓存大小
gzip_buffers     4 8k;
#gzip压缩文件格式,以下涵盖了一般所需的类型
gzip_types       text/plain text/css application/x-javascript;
#gzip压缩等级,数值越高压缩得越狠,也越占资源
gzip_comp_level 4

Demo
 

gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/html application/x-javascript text/css application/xml;

以上代码可以插入到 http {…}整个服务器的配置里,也可以插入到虚拟主机的 server {…}或者下面的location模块内。

配置gzip后,可以用./sbin/nginx -t测试配置是否正确

查看页面是否已启用gzip,可以用网页gzip压缩检测工具  

文章参考:Nginx开启和配置gzip