Nginx gzip压缩功能介绍

  Nginx gzip压缩模块提供了压缩文件内容的功能,用户请求的内容再发送到用户客户端之前,Nginx服务器会根据一些具体的策略实施压缩,以节约网站出口带宽,同时加快数据传输效率,来提升用户访问体验。

Nginx gzip压缩的有点

  • 提升网站用户体验,发送给用户的内容笑了,用户访问单位大小的页面就加快了,用户体验提升了,网站的口碑就好了。

  • 节约网站带宽成本,数据是压缩传输的,因此节省了网站的带宽流量成本,不过压缩时会消耗服务器一些cpu资源。

需要和不需要压缩的对象

  • 纯文本内容压缩比很高,因此春文本的内容最好进行压缩,例如 html css js xml shtml等格式的文件。

  • 被压缩的春文本文件必须要大于1KB,由于压缩算法的特殊原因,极小的文件压缩后反而会变大。

  • 图片、视频等文件尽量不要压缩,因为这些文件大多是经过压缩的,如果再压缩就可能会减小很少,或者有可能增大,同时压缩时还会消耗大量的CPU、内存资源。

参数介绍及配置说明

  此压缩功能与早期Apache服务的mod_deflate压缩功能很相似,Nginx的gzip压缩功能依赖与ngx_http_gzip_nmodule模块,默认已安装。

对应的压缩参数说明如下:

gzip on; # 开启gzip压缩功能
gzip_min_length 1k; # 设置允许压缩的页面的最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩。建议设置成大于1k,如果小于1k可能会越压越大。
gzip_buffers   4 16k; # 压缩缓冲区大小。表示申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_http_version 1.1; # 压缩版本(默认为1.1),用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持gzip,使用默认即可。
gzip_comp_level 2; # 压缩比率。用来指定gzip压缩比,值为1时压缩比最小,处理速度最快;9压缩比最大,传输速度块,但处理最慢,也比较消耗cpu资源。
gzip_types text/plain text/css application/x-javascript text/xml application/xml+rss; # 压缩类型,"text/html"类型总是会被压缩,mime.types里面的媒体类型。

完整的配置如下:

gzip on;
gzip_min_length 1k;
gzip_buffers   4 32k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain text/css application/x-javascript text/xml application/xml+rss;

  不同nginx版本中,gzip_types的配置可能会有不同,上述配置示例适合nginx-1.2.9。对应的文件类型,请查看安装目录下的mime.types文件。
  更多可以查看官方文档、也可以参考这里
  另外,通过这里gzip压缩检测工具可以检测是否正常被压缩。


最后编辑: 于 3年前

标签

评论列表(0)

    暂无评论