nginx中gzip的配置参数解读

361 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

序言

我们在上一篇文章中讲了提升页面访问速度的几种常用方法,里面讲了通过在nginx开启gzip压缩,效果也是很明显的

image.png

原本是192kb的文件,开启gzip压缩后转成了74.1kb,压缩效果很明显。

正文

那么,gzip具体是在怎么配置的呢? 然后这些参数具体是什么含义呢?

好的,接着往下读。

nginx.conf文件的http对象里配置gzip的参数

我的gzip的配置如下:

nginx.conf文件

http {

  ...
  
    #gzip
    gzip  on;
    gzip_min_length 10k;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";
    
  ...
}

nginx.conf采用#来写注释

配置参数解读:

  1. gzip

    是否开启gzip压缩,on开启off关闭

  2. gzip_min_length

    使用gzip压缩的最小文件大小,k为单位。 我这里写的是10k,则大于10kb的文件才会进行gzip压缩。

  3. gzip_comp_level

    gzip的压缩级别,范围是1-9。压缩级别越大,文件的压缩比越大。压缩级别越低,文件压缩比越小。

    那压缩级别是不是越大越好?

    不是的。

    因为gzip的压缩是通过服务器来压缩的,压缩级别越大,会更消耗服务器的性能。如果访问的人一多,则可能服务器的cpu会吃不消。而且压缩级别到了某个级别后,再往大设置,压缩效果其实并不明显。

    这里我这里的是2.

  4. gzip_types

    gzip进行压缩的文件类型。 我这里写的文件类型是text, js,cssxml

    如果文件类型不属于这些,则不会进行gzip压缩。

  5. gzip_vary

    是否增加响应头Vary: Accept-Encodingon为开启,off关闭。一般都会开启。

  6. gzip_disable

    禁止哪些浏览器开启gzip压缩。使用正则来匹配浏览器的User Agent。 我这里写的是"MSIE [1-6]\." 代表的是ie6以及ie6以下都不会开启gzip压缩,因为它们不支持gzip压缩。

大家有问题可以评论留言。