gzip
gzip属于在线压缩,在资源通过http发送报文给客户端的过程中,进行压缩,可以减少客户端带宽占用,减少文件传输大小。
一般写在server或者location均可;
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:

这个时候 298KB 左右;
开启gzip:


开启之后,Content-Encoding: gzip; ETag: W/"~~~"; 这里的ETag中的 W\ 就是区分是否是在线写入压缩的标识;
开启gzip,298KB 可以减少到 104KB,效率还是不错的; 只是在线gzip比较占用CPU,相比gzip_static还是不太好。
gzip_static
在前端代码打包构建bundle的时候,一般都有根据一定的算法自动压缩代码成gz文件的webpack插件;
当我们不在 nginx 开启 gzip_static的时候,发现生产的gz文件并没有被运行;
gzip_static是会自动执行gz文件的,这样的就避免了通过gzip自动压缩;
比如上面图片的资源:

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


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