Nginx开启gzip压缩

Nginx gzip模块提供了压缩文件内容的功能,用户请求的内容在发送到用户客户端之前,nginx会根据一些具体的策略实施压缩,以节约网站出口带宽,同时加快数据传素效率,提升用户体验。


优点:

发送给用户的内容变小了,用户访问页面的速度快了,提升用户体验。

节约带宽成本。

缺点:

额外浪费一些cpu资源。


需要和不需要压缩的对象:

纯文本内容压缩比例很高,因此纯文本的内容最好进行压缩,例如html, js, css, xml, shtml。

被压缩的纯文本文件最好大于1KB,由于压缩算法的特殊原因,极小的文件压缩后可能反而变大。

图片、视频一般都经过压缩,因此不再建议压缩,不再额外耗费cpu。


gzip相关参数:

gzip on; #开启gzip压缩功能

gzip_min_length 1k;  #默认为0,表示不管页面多大都进行压缩,建议设置成大于1k, 如果小于1k可能会越压越大
gzip_buffers 4 32k;  #压缩缓冲区大小,表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
gzip_http_version 1.1; #压缩版本,前端为squid2.5时使用1.0, 用于设置识别HTTP协议版本,默认时1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可
gzip_comp_level 2; #压缩比例,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理慢,也比较耗CPU
gzip_types text/css text/html application/javascript; #指定压缩的类型,text/html类型总是会被压缩,这个就是HTTP原理部分讲的媒体类型
gzip_vary on; #vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过nginx压缩的数据

完整的配置如下:
注意:不同的nginx版本中,gzip_types的配置可能会有不同,对应的文件类型,请查看conf/目录下的mime.types文件

gzip on;
gzip_min_length 1k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/css text/html text/xml application/javascript;
gzip_vary on;


查看是否启用gzip:

curl -I -H "Accept-Encoding: gzip,deflate"  http://127.0.0.1/index.html


gzip效果检查,大部分浏览器的debug功能均可看到压缩前后的数据传输大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值