Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的 gzip 代表GNU zip。也经常用来表示 gzip 这种文件格式。

什么是 Gzip ?

Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示 gzip 这种文件格式。
这也是HTTP1.1协议定义的两种压缩方法中最常用的一种压缩方法,客户端浏览器大都支持这种压缩格式。

Gzip 作用

网站的流量越来越多大,对于使用Nginx的优化变得非常重要,经过Gzip压缩后页面大小可以变为原来的 30% 甚至更小,当用户浏览页面的时候速度会快得多。
Gzip是规定的三种标准HTTP压缩格式之一,目前绝大多数的网站都在使用Gzip传HTML、CSS、JavaScript 等资源文件。

Gzip 交互流程

Gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后由浏览器解压并解析,浏览器那里不需要我们担心,因为目前的绝大多数浏览器都支持解析Gzip压缩过的页面。

任何内容都需要开启 Gzip 压缩?

如果消息的内容太大,就要考虑对消息进行压缩处理,这可以减轻网络带宽压力;但是这同时也会加重 CPU 的负担,因为压缩算法是 CPU 计算密集型操作,会导致操作系统的负载加重。所以,最终是否进行消息压缩,一定要根据业务情况加以权衡。

什么样的资源不适合开启 Gzip 压缩?

  • 二进制资源:例如图片、mp3 这样的二进制文件,不必压缩;因为压缩率比较小
  • 大文件:会消耗大量的 cpu 资源,且不一定有明显的效果
  • 图片类型:图片如 jpgpng 本身就会有压缩,所以就算开启 Gzip 后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源

Nginx 配置 Gzip

# 决定是否开启gzip模块,on表示开启,off表示关闭
gzip  on;# nginx对于静态文件的处理模块 该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的CPU资源消耗
# 该模块启用后,nginx首先检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容
gzip_static on;# 设置允许压缩的页面最小字节数 以k为单位,当值为0时,所有页面都进行压缩,小于设置值的文件将不会压缩
gzip_min_length 10k;# 设置压缩所需要的缓冲区大小 ps:此处设置为4个16K内存作为压缩结果流缓存
gzip_buffers 4 16k;# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.1;# gzip 压缩级别(1-9),数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 3;# 设置需要压缩的MIME类型,非设置值不进行压缩,即匹配压缩类型
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;# 指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库,支持正则
# 此处表示ie6及以下不启用gzip(因为IE低版本不支持)
gzip_disable "MSIE [1-6]\.";

Nginx 启用 gzip 压缩相关推荐

  1. Nginx开启Gzip压缩配置详解

    Nginx开启Gzip压缩配置详解 最近生产上发生了一些问题,原先所有的静态资源文件都是经过gzip压缩的,然而这几天突然都没有压缩了,经过一顿排查,发现是Nginx的配置有问题,借此机会详细了解了N ...

  2. nginx开启Gzip压缩,Vue性能优化之使用gzip压缩打包

    一.前言 不管是vue项目还是react项目在使用webpack打包之后都会生成一个动辄一两兆甚至更大的js文件,在某些情况下严重影响项目性能,打开页面的时候白屏时间会很长,本文将介绍如何使用gzip ...

  3. 网站启用GZip压缩后,速度快了3倍!

    GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度.缩短网页打开时间的目的. 本文是一篇研究性文章,将通过某个案例来给大家显示网站采用GZi ...

  4. webpack+nginx开启gzip压缩部署项目

    首先在服务器安装nginx sudo apt update sudo apt install nginx 安装完毕后将前端项目打包 webpack.output.publicPath里配置资源基础路径 ...

  5. 启用Gzip压缩(IIS)提高客户端网站访问速度

    IIS上启用Gzip压缩(HTTP压缩) 详解 一.摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 二.前言. 本文的知识点是从互联 ...

  6. 在IIS上启用Gzip压缩 (HTTP压缩)方法

    本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度. 一.摘要 本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小 ...

  7. squid配合nginx的gzip压缩的完美解决方案

    Squid3.0之前,一直不能完美支持http1.1.所以对gzip内容的支持,始终有很多问题.我也看过很多帖子,号称解决了这个问题.但是其实一直没有把问题说清楚.我今天试着把问题的原因和解决方法彻底 ...

  8. nginx的gzip压缩

    随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? gzip(GNU-ZIP)是一种压缩技术.经过gzi ...

  9. 更改web.config,让godady的win主机启用gzip压缩

    阅读本文首先确定你正在使用或者准备使用godaddy的windows虚拟主机,当然也会适合别的windows主机,同时,请确定你的虚拟主机的iis模式是7而不是6,因为godaddy同时还支持iis6 ...

最新文章

  1. elasticsearch如何安全重启节点
  2. 好看的按钮组件_一个能决定命运的按钮,你敢来挑战吗?
  3. 在ubuntu用arm ds-5社区版配合linaro交叉编译工具开发android linux应用
  4. Docker多步构建更小的Java镜像
  5. 程序员最喜欢用的在线代码编译器,什么?你竟然不知道!可以在网页敲代码,运行调试!
  6. 实验楼python挑战答案_python基础知识
  7. qt5 tcp服务器编程 多固定客户_服务器与客户端进程之间端口号联系
  8. 【图文详解:索引极简教程】SQL 查询性能优化原理
  9. 人民日报申论范文:题目考“时间”你怎么写
  10. matlab求刚度,求整体刚度矩阵matlab程序
  11. 一些Winodws mobile相关资料的整理
  12. TortoiseSVN 使用教程
  13. 拉格朗日松弛(二)——实例及代码
  14. JavaOJ 汉诺塔问题
  15. 群表示论之Able群的不可约表示
  16. php date函数时间不对,PHP Date / Time 日期和时间 函数和时间相差8小时解决办法
  17. Linux进程5:exec族函数(execl, execlp, execle, execv, execvp, execvpe)总结及exec配合fork使用
  18. ThinkPHP验证码错误解决过程
  19. Mac Cordova iOS配置和常见问题
  20. 电气工程系毕业设计大全单片机精品设计合集参考案例地址

热门文章

  1. TimesTen学习(四)Data Manager守护进程
  2. 力软快速开发框架的建设与介绍
  3. Android Studio编译报错:“ java.lang.OutOfMemoryError: Java heap space”
  4. 电子货架标签----智能路由
  5. Java 中 Emoji 的正则表达式
  6. 乐播登录显示服务器失败,乐播投屏搜索设备失败的处理操作
  7. 2019,IP网络完成智能觉醒
  8. Zoox 已成自动驾驶人才quot;收割机quot; ,特斯拉受伤最深
  9. 关于opencv使用CAP_PROP_FPS得到的摄像头帧率为0的解答和解决方案
  10. 【人工智能】确定型推理