#每天都是崭新的一天#再累也要照顾好自己

【nginx系列】Nginx的gzip压缩的原理和参数配置

一、前言

开启Nginx gzip压缩非常简单,达到的效果可以压缩静态文件大小、提高页面访问速度、节省流量和带宽是很有帮助的,也为用户省去了很多流量。

唯一的不足就是开启之后服务器这边会增加运算,进行压缩运算处理,就比如压缩级别,服务器cpu会有开销。


二、原理

将重复的内容字符串扫描,将重复的统计出来然后排序,然后定义一个词表,词表用来做替换的。比如:10个字符串最后用两个代替。


三、原理举个例子

比如一个css文件,里面肯定有很多font-size、换行、字体等标签和内容,这种重复的内容会很多,压缩的时候它会对重复的字符串进行扫描,它会把这些重复的统计出来,统计出来会排序,排序之后会定义一个词表,词表是用来做替换的,就本来比如一个十个字符长度的字符串,它会用两个长度的字符替换,这样就变成了原来的五分之一,其他的也是一样,比如文件里有大量大段的重复内容,这样压缩效果会更明显。这样简单的替换就实现了压缩。越是重复的内容越多,压缩的效率越高,相反,效率越低。


四、参数配置

定义位置:(1)http模块中。(2)server模块中。

我的这个gzip是在http模块中定义,意思就是经过这个nginx的所有请求都是要进行压缩的。也可以在每一个系统的server里单独定义。

         # 开启gzip压缩
	 gzip on;
	 # 最小的长度,1K,文件如果太小,小于1K,就不会压缩,因为没准压缩之后还要变大
	 gzip_min_length 1k;
     gzip_vary on;
     gzip_proxied any;
	 # 压缩级别1-9,比如level为1的话,压缩的比例比较低,但是效率比较高
     gzip_comp_level 6;
	 # 设置缓存的单位,压缩的时候要分配的缓冲区,缓冲区以16K为单位,
	 # 往缓冲区写入内容的时候超过16K的时候,那么就会按照16倍的大小创建新的缓冲区,
	 # 也就是建立一个256K的存储,这样把压缩的内容倒进去
     gzip_buffers 16 16k;
     gzip_http_version 1.1;
	 # 定义了压缩的类型,比如文本的,js、css等文本文件压缩,
	 # 像是图片啊,就没必要定义了,本身就支持,这里就不需要定义了,默认压缩text/html 不需要指定,否则报错
     gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
     


感谢你的阅读,本文由 sau交流学习社区 版权所有。
如若转载,请注明出处:sau交流学习社区-power by saucxs(程新松)(/page/789.html)
交流咨询
    官方QQ群
    群号663940201,欢迎加入!
    sau交流学习社区交流群

微信群
欢迎加入微信群
微信公众号
欢迎关注微信公众号

图文推荐

微信群
saucxs聊天机器人
saucxs
hi ,欢迎来到sau交流学习社区,欢迎与我聊天,问我问题哦!
您正在使用的浏览器是,不在支持范围内!
为了您的正常使用与展示,推荐使用Chrome浏览器68以上版本
支持浏览器:
火狐浏览器最新版
Safari浏览器最新版
Edge浏览器最新版
IE浏览器10,11