未开启gzip压缩的时候,响应请求的文件类型还是原来的文件类型,如Content-Type: apllication/css,那么开启了gzip压缩的时候,对应的文件类型则会变成Content-Type: gzip。

压缩好处

在带宽有限的情况下,减少传输文件的大小,可以极大减少文件的传输时间。比如可以显著提高网站首页的加载时间。

压缩配置

  1. gzip on;
  2. gzip_min_length 1k;
  3. gzip_buffers 4 32k;
  4. gzip_http_version 1.1;
  5. gzip_comp_level 2;
  6. gzip_types text/plain application/javascript text/css application/xml;
  7. gzip_vary on;
  8. gzip_disable "MSIE [1-6].";

性能测试

测试环境

  1. 域名:xxx.com
  2. 阿里云服务器:带宽2Mbps,实际下载速度为256KB/S

测试内容

nginx未开启gzip的情况下

  1. 总共下载资源14M, 耗时50S,其中app.js有5.59M,chunk.js有3.62M

nginx开启gzip的情况下,主要看网速和压缩之后的文件大小

  1. 压缩等级2,总共下载资源4.3M,耗时14.72S
    1. app.js,1.4M
    2. chunk.js,1.3M
  2. 压缩等级2(不压缩js文件),总共下载资源12M,耗时42S
  3. 压缩等级6,总共下载资源3.8M,耗时12.2S
目前 app.js内容+随机字符串
app.js文件大小 5.67M 11.3M
app.js压缩后大小 1.2M 3.9M
app.js压缩后时长 10.94S 21.43S
整体大小 14.7M 20M
整体压缩后大小 4.2M 6.4M
整体压缩后时长 15S 21.79S