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

3,905 阅读1分钟

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\ 就是区分是否是在线写入压缩的标识;

开启gzip298KB 可以减少到 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