nginx开启gzip、gzip_static 加速你的应用

nginx开启gzip、gzip_static 加速你的应用

[TOC]

gzip

gzip属于在线压缩,在资源通过http发送报文给客户端的过程中,进行压缩,可以减少客户端带宽占用,减少文件传输大小。

一般写在server或者location均可;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

server {
listen 6002;
server_name **.234.133.**;

gzip on;
gzip_proxied any;
gzip_types
text/css
text/javascript
text/xml
text/plain
image/x-icon
application/javascript
application/x-javascript
application/json;
}

不开启gzip:

1568810872445

这个时候 298KB 左右;

开启gzip:

1568811020029

1568811044342

开启之后,Content-Encoding: gzip; ETag: W/"~~~";
这里的ETag中的 W\ 就是区分是否是在线写入压缩的标识;

开启gzip298KB 可以减少到 104KB,效率还是不错的;
只是在线gzip比较占用CPU,相比gzip_static还是不太好。

gzip_static

在前端代码打包构建bundle的时候,一般都有根据一定的算法自动压缩代码成gz文件的webpack插件;

当我们不在 nginx 开启 gzip_static的时候,发现生产的gz文件并没有被运行;

gzip_static是会自动执行gz文件的,这样的就避免了通过gzip自动压缩;

比如上面图片的资源:

1568811548745

我们上面讲到通过gzip自动压缩是 104KB,而我们自己压缩的是90KB,所有如果运行了我们自己的gz文件,会更好。

1
gzip_static on;

image-20190918223750703

image-20190918223809667

ETag里面没有 \W, 就是使用的是我们自己的gz文件的,比gzip自动压缩的还减少了10KB

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2014-2020 Alex Wong
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~~~

支付宝
微信