0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度解析Nginx Gzip指令:优化网站性能与加速加载速度的关键工具

马哥Linux运维 ? 来源:马哥Linux运维 ? 2025-02-12 11:06 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

说一段废话

压缩响应数据有什么作用呢?问的好:从用户体验和IT成本两方面回答这个问题:

用户体验上

网速一定的情况下,传输5MB数据比传输10MB数据的时间快了一半。所以传输数据越小用户加载页面就越快,当然相比较之下体验会更好。

IT成本上

对这个场景来说的成本主要是带宽成本, 数据不压缩那么传输这些数据相应的带宽肯定更大,对比之下压缩耗费的CPU资源在带宽费用上不值一提。

所以你有什么理由不用压缩呢?

背景

当然Nginx也提供了gzip的压缩方式可以使用,但是在日常的工作中我发现或多或少在使用上有些问题,有点像:用了但又好像没用的感觉。 这篇就记录一下gzip的使用方式和易错点。

指令介绍

gzip

gzip指令来自 ngx_http_gzip_module 模块,提供的核心能力就是压缩响应数据。

该模块下提供的指令如下:

gzip                on;     # 开启gzip
gzip_comp_level     6;      # 压缩等级:1-9 1:压缩最快/CPU消耗最少/压缩率最低 以次类推
gzip_min_length     1000;   # 小于此大小的数据不压缩(单位字节/byte);数据来源"Content-Length"头
gzip_buffers        32 4k;  # 压缩响应的缓冲区数量和大小(4K 内存页大小取决于平台)
gzip_proxied        any;    # 对代理的请求是否开启压缩
gzip_types text/plain application/xml application/javascript application/x-javascript text/css application/json;    # 哪些类型的数据需要被压缩
gzip_disable     "MSIE [1-5].";    # User-Agent 被正则匹配到的不开启压缩
gzip_vary on;               # 当gzip对请求生效时会被添加一个响应头 "Vary: Accept-Encoding"

tips:

gzip 是动态压缩: 每个请求在被响应时都会在gzip逻辑内走一遍

压缩等级不是越高越好: 压缩到一定程度后就会吃力不讨好, 从js的测试来看性价比最高的级别是 5或6

buffer大小设置最好是和平台的内存页保持一致: getconf PAGE_SIZE

gzip_types不要瞎写: 写压缩率大的(css/js/xml/json/ttf), image图片就不要写了,压缩空间太小,又耗CPU

gzip_static

gzip_stati指令来自 ngx_http_gzip_static_module模块,提供的核心能力是静态/预压缩

该模块提供的指令如下:

gzip_static on|off|always;  # always: 不管客户端是否支持压缩我他妈全部给你压缩之后给你

tips:

可以复用gzip_module中以下的指令:

gzip_http_version, gzip_proxied, gzip_disable, gzip_vary

gzip_static是静态压缩:意思是你的服务端需要同时存在源文件和使用gzip压缩后的源文件,这时请求的时候会优先吧压缩文件返回,这样就不用再耗费CPU去动态压缩了。(视情况来用,我们没用)

可以和gzip一同开启,没啥影响,它的优先级高于gzip

易错点提示

在实际的生产环境中架构都比较负载,不像一个单纯的Nginx一样,我配置好了就万事大吉了。

时常会遇到有些网站明明配置了gzip但是展示上看并没有生效,为什么?

此时需要梳理这个请求流程,看看这个请求都经过了哪些地方,比如 你的请求通过三次代理(CDN-->Nginx-->Nginx)那么在其中一层没有配置或者配置错误那么整体的返回数据就是没有被压缩的, 这种情况出现还是比较多的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 指令
    +关注

    关注

    1

    文章

    617

    浏览量

    36694
  • nginx
    +关注

    关注

    0

    文章

    171

    浏览量

    12655

原文标题:Nginx Gzip 指令深度解析:提升网站性能与加载速度的必备利器

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Nginx性能优化终极指南

    而worker 进程数默认为 1 。单进程最大连接数为1024。如下图(打开Nginx目录下的/conf/nginx.conf 文档),现在我们来对这两个数值进行调优
    的头像 发表于 06-16 13:44 ?324次阅读
    <b class='flag-5'>Nginx</b><b class='flag-5'>性能</b><b class='flag-5'>优化</b>终极指南

    鸿蒙5开发宝藏案例分享---长列表性能优化解析

    鸿蒙长列表性能优化大揭秘!告别卡顿,实战代码解析来了! 大家好呀~今天在翻鸿蒙开发者文档时,发现了个 性能优化宝藏案例 !官方居然悄悄放出了
    发表于 06-12 17:40

    鸿蒙5开发宝藏案例分享---应用性能优化指南

    鸿蒙性能优化实战指南:让你的应用飞起来 ? 大家好!今天咱们聊聊鸿蒙(HarmonyOS)应用性能优化的实战技巧。结合官方文档和最佳实践,我整理了8大核心
    发表于 06-12 17:17

    鸿蒙5开发宝藏案例分享---Web加载时延优化解析

    鸿蒙开发宝藏:Web加载完成时延优化实战 大家好呀!今天在翻鸿蒙开发者文档时,发现了一个隐藏的 性能优化宝藏区 ——官方竟然悄悄提供了超多实战案例!尤其是****Web
    发表于 06-12 17:11

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    鸿蒙性能优化宝藏指南:实战工具与代码案例解析 大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化
    发表于 06-12 16:36

    Nginx核心功能深度解析

    Nginx核心功能深度解析
    的头像 发表于 05-09 10:50 ?326次阅读

    WT588F语音芯片响应时间深度解析:从指令触发到音频播放的技术全貌

    不同工作模式下的时间性能差异。一、核心处理流程与时序分解1.1典型指令执行路径指令接收→协议解析→存储寻址→数据读取→数模转换→音频输出1.2关键
    的头像 发表于 03-31 09:24 ?431次阅读
    WT588F语音芯片响应时间<b class='flag-5'>深度</b><b class='flag-5'>解析</b>:从<b class='flag-5'>指令</b>触发到音频播放的技术全貌

    Nginx服务优化教程

    隐藏Nginx版本号,避免安全漏洞泄漏:修改配置文件法;修改源码法
    的头像 发表于 03-12 15:57 ?549次阅读
    <b class='flag-5'>Nginx</b>服务<b class='flag-5'>优化</b>教程

    PTR5415蓝牙模组性能与场景应用深度解析

    、Matter及Zigbee等多协议,满足复杂网络需求。 射频性能:发射功率达+8dBm,接收灵敏度98dBm@1Mbps,显著提升传输距离与稳定性。 功耗控制:发射电流仅4.9mA@0dBm,接收电流
    发表于 03-11 16:03

    前端性能优化:提升用户体验的关键策略

    在互联网飞速发展的今天,用户对于网页的加载速度和响应性能要求越来越高。前端性能优化成为了提升用户体验、增强
    的头像 发表于 01-22 10:08 ?510次阅读

    HarmonyOS Web开发性能优化指导

    的影响因素以及对应的优化方案。 二、Web页面加载性能优化指导 (一)Web页面加载流程 Web页面加载
    发表于 12-06 08:41

    HarmonyOS Web页面加载的原理和优化方法

    在移动互联网时代,应用的页面渲染速度对于用户体验至关重要。相对于原生页面,Web页面的性能存在多方面的技术挑战。本文以HarmonyOS的ArkWeb组件为基础,介绍了Web页面加载中的影响因素以及对应的
    的头像 发表于 12-05 15:14 ?1117次阅读
    HarmonyOS Web页面<b class='flag-5'>加载</b>的原理和<b class='flag-5'>优化</b>方法

    MCU性能与功能:优化设计的关键

    MCU(微控制单元)是现代电子产品中不可或缺的核心组件,广泛应用于家电、汽车、工业控制、医疗设备及消费电子等领域。随着科技的不断发展,MCU的性能与功能得到了前所未有的提升,而优化设计成为推动这一变化的关键所在。
    的头像 发表于 11-01 13:26 ?1017次阅读

    如何优化EPS文件以提高加载速度

    在图形设计和排版领域,EPS文件因其高兼容性和高质量输出而广受欢迎。然而,EPS文件往往体积较大,加载速度慢,这在处理大型项目或需要快速迭代时成为了一个瓶颈。 一、了解EPS文件 EPS文件是一种
    的头像 发表于 10-30 14:32 ?1238次阅读

    如何使用gzip压缩和解压缩技术

    Nginx是一款高性能的Web服务器,它也能够充当反向代理服务器和负载均衡器。在Web应用开发中,优化网站速度是一个非常重要的工作。使用
    的头像 发表于 09-29 15:57 ?938次阅读