node . js服务器开启Gzip压缩教程

  

<强> Gzip是什么

  

复制大神们的解释吧:

  

  

<强> Gzip压缩率

  

举个例子,通过webpack打包后的js文件比较大,虽然我们可以利用块功能将文件分开混淆打包,但是总体积还是不小;这时候看看利用gzip压缩的效果:
  

  

节点。js服务器开启Gzip压缩教程
  

  

启用Gzip前

  

节点。js服务器开启Gzip压缩教程
  

  

启用Gzip后

  

对比其中三个文件前后压缩大小:

  

文本类文件:

  

iview.min。js: 429 kb→base.min 109 kb,压缩比74.6%。js: 309 kb→style.min 81.7 kb,压缩比73.56%。css: 207 kb→30.9 kb,压缩比

85%   

图片:   

图片1:63.2 kb→63.2 kb,压缩比0% ?
  

  

我们看到文本类文件的压缩效果非常显著,但是图片体积没变。看一下文本类的http响应头是有gzip压缩过:

  

节点。js服务器开启Gzip压缩教程
  

  

而图片的没有:
  

  

节点。js服务器开启Gzip压缩教程
  

  

这是因为一般对于图片(png, jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默认对图片不进行gzip压缩。

  

<强> node . js启用gzip

  

下面说一下节点的表达框架如何使用gzip:
  

  

1。安装一个压缩依赖:

  

<代码> npm安装压缩代码

  

2。调用:

        var压缩=要求(压缩)   应用var=表达();//尽量在其他中间件前使用压缩   app.use(压缩());      

  

基本的使用就是这样就好了,另外如果想只对某些请求使用此功能,可以使用它的过滤方法:

        app.use(压缩({过滤器:shouldCompress}))      函数shouldCompress(点播,res) {   如果(req.headers [' x-no-compression ']) {//这里就过滤掉了请求头包含“x-no-compression”   返回假   }      返回压缩。过滤器(点播,res)   }   之前      

  

其他的功能请参考压缩的文档。

  

另外附上nginx的配置

        #在为启用,为关闭   gzip;      #设置允许压缩的页面最小字节数,页面字节数从标题头中内容长度的中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1 k的字节数,小于1 k可能会越压越大。   gzip_min_length 1 k;      #获取多少内存用于缓存压缩结果,' 4 16 k表示以16 k * 4为单位获得   gzip_buffers 4 16 k;      # gzip压缩比(1 ~ 9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值   gzip_comp_level 5;      #对特定的MIME类型生效,其中“text/html”被系统强制启用   gzip_types文本/普通应用程序/x-javascript文本/css应用程序/xml文本/javascript应用程序/x-httpd-php;      

简单解释下参数

  

1) gzip   

语法:gzip开/关
  默认值:从
  作用域:http服务器,位置
  说明:开启或者关闭gzip模块,这里使用在表示启动
  

  

2) gzip_min_length   

语法:gzip_min_length长度
  默认值:gzip_min_length 0
  作用域:http服务器,位置
  说明:设置允许压缩的页面最小字节数,页面字节数从标题头中内容长度的中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1 k的字节数,小于1 k可能会越压越大。|
  

  3)gzip_buffers

  

语法:gzip_buffers号码大小
  默认值:gzip_buffers 4 4 k/8 k
  作用域:http服务器,位置
  说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16 k代表以16 k为单位,按照原始数据大小以16 k为单位的4倍申请内存。
  

  4)gzip_comp_level

  

语法:gzip_comp_level 1 . .9
  默认值:gzip_comp_level 1
  作用域:http服务器,位置
  说明:gzip压缩比1压缩比最小处理速度最快,9压缩比最大但处理最慢(传输快但比较消耗cpu)。这里设置为5。

node . js服务器开启Gzip压缩教程