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

    文章

    624

    浏览量

    37661
  • nginx
    +关注

    关注

    0

    文章

    193

    浏览量

    13203

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Nginx的限流机制深度解析

    很多运维工程师对 Nginx 的认知停留在"反向代理"和"负载均衡",但实际上 Nginx 在安全防护方面也相当强大——限流可以防止 CC 攻击和 API 滥用,黑白名单可以精准控制访问来源,基础安全配置可以防护常见的 Web 攻击。
    的头像 发表于 04-10 16:40 645次阅读

    Freescale K40 系列芯片:性能与应用深度解析

    Freescale K40 系列芯片:性能与应用深度解析 在电子工程师的设计工具箱中,一款性能出色、功能丰富的芯片往往能为项目带来事半功倍的
    的头像 发表于 04-10 12:40 175次阅读

    Atmel ATmega325/3250/645/6450微控制器:性能与特性深度解析

    Atmel ATmega325/3250/645/6450微控制器:性能与特性深度解析 在嵌入式系统设计领域,选择一款合适的微控制器至关重要。Atmel ATmega325/3250/645
    的头像 发表于 04-06 13:05 631次阅读

    Nginx Gzip压缩配置指南

    说起Gzip压缩,可能很多人觉得这是个老生常谈的话题。但我在这几年的运维工作中发现,真正把Gzip配置到位的网站其实不多。去年帮一个客户做性能优化
    的头像 发表于 01-30 16:03 465次阅读

    A64指令集通关笔记:加载与存储指令解析

    加载与存储指令这块硬骨头?     作为技术开发者,我们总在追求 “ 更底层、更高效、更可控 ” 的代码能力。 A64  指令集的加载与存储指令
    的头像 发表于 01-20 16:23 412次阅读
    A64<b class='flag-5'>指令</b>集通关笔记:<b class='flag-5'>加载</b>与存储<b class='flag-5'>指令</b>全<b class='flag-5'>解析</b>

    深入解析FXLS8971CF:3轴低g加速度计的卓越性能与应用

    深入解析FXLS8971CF:3轴低g加速度计的卓越性能与应用 在当今工业和医疗物联网(IoT)领域,对于高性能、低功耗的传感器需求日益增长。NXP Semiconductors
    的头像 发表于 12-24 14:00 653次阅读

    从直流到高频:深度解析电流探头的关键性能指标与选型指南

    深度解析电流探头的关键性能指标与选型指南
    的头像 发表于 12-17 14:54 501次阅读

    5分钟了解SEO优化服务器对网站加载速度的影响

    一个为SEO优化过的服务器,能显著提升网站性能,从而在搜索引擎排名中占据有利位置。
    的头像 发表于 12-02 10:27 426次阅读

    Nginx高并发优化方案

    作为一名在生产环境中摸爬滚打多年的运维工程师,我见过太多因为Nginx配置不当导致的性能瓶颈。今天分享一套完整的Nginx高并发优化方案,帮助你的系统从10万QPS突破到百万级别。
    的头像 发表于 08-13 15:51 1200次阅读

    Nginx性能优化终极指南

    而worker 进程数默认为 1 。单进程最大连接数为1024。如下图(打开Nginx目录下的/conf/nginx.conf 文档),现在我们来对这两个数值进行调优
    的头像 发表于 06-16 13:44 1526次阅读
    <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 996次阅读