0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

深度解析Nginx Gzip指令:優(yōu)化網(wǎng)站性能與加速加載速度的關鍵工具

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-02-12 11:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說一段廢話

壓縮響應數(shù)據(jù)有什么作用呢?問的好:從用戶體驗和IT成本兩方面回答這個問題:

用戶體驗上

網(wǎng)速一定的情況下,傳輸5MB數(shù)據(jù)比傳輸10MB數(shù)據(jù)的時間快了一半。所以傳輸數(shù)據(jù)越小用戶加載頁面就越快,當然相比較之下體驗會更好。

IT成本上

對這個場景來說的成本主要是帶寬成本, 數(shù)據(jù)不壓縮那么傳輸這些數(shù)據(jù)相應的帶寬肯定更大,對比之下壓縮耗費的CPU資源在帶寬費用上不值一提。

所以你有什么理由不用壓縮呢?

背景

當然Nginx也提供了gzip的壓縮方式可以使用,但是在日常的工作中我發(fā)現(xiàn)或多或少在使用上有些問題,有點像:用了但又好像沒用的感覺。 這篇就記錄一下gzip的使用方式和易錯點。

指令介紹

gzip

gzip指令來自 ngx_http_gzip_module 模塊,提供的核心能力就是壓縮響應數(shù)據(jù)。

該模塊下提供的指令如下:

gzip                on;     # 開啟gzip
gzip_comp_level     6;      # 壓縮等級:1-9 1:壓縮最快/CPU消耗最少/壓縮率最低 以次類推
gzip_min_length     1000;   # 小于此大小的數(shù)據(jù)不壓縮(單位字節(jié)/byte);數(shù)據(jù)來源"Content-Length"頭
gzip_buffers        32 4k;  # 壓縮響應的緩沖區(qū)數(shù)量和大小(4K 內(nèi)存頁大小取決于平臺)
gzip_proxied        any;    # 對代理的請求是否開啟壓縮
gzip_types text/plain application/xml application/javascript application/x-javascript text/css application/json;    # 哪些類型的數(shù)據(jù)需要被壓縮
gzip_disable     "MSIE [1-5].";    # User-Agent 被正則匹配到的不開啟壓縮
gzip_vary on;               # 當gzip對請求生效時會被添加一個響應頭 "Vary: Accept-Encoding"

tips:

gzip 是動態(tài)壓縮: 每個請求在被響應時都會在gzip邏輯內(nèi)走一遍

壓縮等級不是越高越好: 壓縮到一定程度后就會吃力不討好, 從js的測試來看性價比最高的級別是 5或6

buffer大小設置最好是和平臺的內(nèi)存頁保持一致: getconf PAGE_SIZE

gzip_types不要瞎寫: 寫壓縮率大的(css/js/xml/json/ttf), image圖片就不要寫了,壓縮空間太小,又耗CPU

gzip_static

gzip_stati指令來自 ngx_http_gzip_static_module模塊,提供的核心能力是靜態(tài)/預壓縮

該模塊提供的指令如下:

gzip_static on|off|always;  # always: 不管客戶端是否支持壓縮我他媽全部給你壓縮之后給你

tips:

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

gzip_http_version, gzip_proxied, gzip_disable, gzip_vary

gzip_static是靜態(tài)壓縮:意思是你的服務端需要同時存在源文件和使用gzip壓縮后的源文件,這時請求的時候會優(yōu)先吧壓縮文件返回,這樣就不用再耗費CPU去動態(tài)壓縮了。(視情況來用,我們沒用)

可以和gzip一同開啟,沒啥影響,它的優(yōu)先級高于gzip

易錯點提示

在實際的生產(chǎn)環(huán)境中架構都比較負載,不像一個單純的Nginx一樣,我配置好了就萬事大吉了。

時常會遇到有些網(wǎng)站明明配置了gzip但是展示上看并沒有生效,為什么?

此時需要梳理這個請求流程,看看這個請求都經(jīng)過了哪些地方,比如 你的請求通過三次代理(CDN-->Nginx-->Nginx)那么在其中一層沒有配置或者配置錯誤那么整體的返回數(shù)據(jù)就是沒有被壓縮的, 這種情況出現(xiàn)還是比較多的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 指令
    +關注

    關注

    1

    文章

    616

    瀏覽量

    36439
  • nginx
    +關注

    關注

    0

    文章

    171

    瀏覽量

    12588

原文標題:Nginx Gzip 指令深度解析:提升網(wǎng)站性能與加載速度的必備利器

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Nginx性能優(yōu)化終極指南

    而worker 進程數(shù)默認為 1 。單進程最大連接數(shù)為1024。如下圖(打開Nginx目錄下的/conf/nginx.conf 文檔),現(xiàn)在我們來對這兩個數(shù)值進行調(diào)優(yōu)
    的頭像 發(fā)表于 06-16 13:44 ?243次閱讀
    <b class='flag-5'>Nginx</b><b class='flag-5'>性能</b><b class='flag-5'>優(yōu)化</b>終極指南

    鴻蒙5開發(fā)寶藏案例分享---長列表性能優(yōu)化解析

    鴻蒙長列表性能優(yōu)化大揭秘!告別卡頓,實戰(zhàn)代碼解析來了! 大家好呀~今天在翻鴻蒙開發(fā)者文檔時,發(fā)現(xiàn)了個 性能優(yōu)化寶藏案例 !官方居然悄悄放出了
    發(fā)表于 06-12 17:40

    鴻蒙5開發(fā)寶藏案例分享---應用性能優(yōu)化指南

    鴻蒙性能優(yōu)化實戰(zhàn)指南:讓你的應用飛起來 ? 大家好!今天咱們聊聊鴻蒙(HarmonyOS)應用性能優(yōu)化的實戰(zhàn)技巧。結(jié)合官方文檔和最佳實踐,我整理了8大核心
    發(fā)表于 06-12 17:17

    鴻蒙5開發(fā)寶藏案例分享---Web加載時延優(yōu)化解析

    鴻蒙開發(fā)寶藏:Web加載完成時延優(yōu)化實戰(zhàn) 大家好呀!今天在翻鴻蒙開發(fā)者文檔時,發(fā)現(xiàn)了一個隱藏的 性能優(yōu)化寶藏區(qū) ——官方竟然悄悄提供了超多實戰(zhàn)案例!尤其是****Web
    發(fā)表于 06-12 17:11

    鴻蒙5開發(fā)寶藏案例分享---性能優(yōu)化案例解析

    鴻蒙性能優(yōu)化寶藏指南:實戰(zhàn)工具與代碼案例解析 大家好呀!今天在翻鴻蒙開發(fā)者文檔時,意外挖到一個 性能優(yōu)化
    發(fā)表于 06-12 16:36

    Nginx核心功能深度解析

    Nginx核心功能深度解析
    的頭像 發(fā)表于 05-09 10:50 ?279次閱讀

    WT588F語音芯片響應時間深度解析:從指令觸發(fā)到音頻播放的技術全貌

    不同工作模式下的時間性能差異。一、核心處理流程與時序分解1.1典型指令執(zhí)行路徑指令接收→協(xié)議解析→存儲尋址→數(shù)據(jù)讀取→數(shù)模轉(zhuǎn)換→音頻輸出1.2關鍵
    的頭像 發(fā)表于 03-31 09:24 ?386次閱讀
    WT588F語音芯片響應時間<b class='flag-5'>深度</b><b class='flag-5'>解析</b>:從<b class='flag-5'>指令</b>觸發(fā)到音頻播放的技術全貌

    Nginx服務優(yōu)化教程

    隱藏Nginx版本號,避免安全漏洞泄漏:修改配置文件法;修改源碼法
    的頭像 發(fā)表于 03-12 15:57 ?505次閱讀
    <b class='flag-5'>Nginx</b>服務<b class='flag-5'>優(yōu)化</b>教程

    前端性能優(yōu)化:提升用戶體驗的關鍵策略

    在互聯(lián)網(wǎng)飛速發(fā)展的今天,用戶對于網(wǎng)頁的加載速度和響應性能要求越來越高。前端性能優(yōu)化成為了提升用戶體驗、增強
    的頭像 發(fā)表于 01-22 10:08 ?480次閱讀

    HarmonyOS Web開發(fā)性能優(yōu)化指導

    的影響因素以及對應的優(yōu)化方案。 二、Web頁面加載性能優(yōu)化指導 (一)Web頁面加載流程 Web頁面加載
    發(fā)表于 12-06 08:41

    HarmonyOS Web頁面加載的原理和優(yōu)化方法

    在移動互聯(lián)網(wǎng)時代,應用的頁面渲染速度對于用戶體驗至關重要。相對于原生頁面,Web頁面的性能存在多方面的技術挑戰(zhàn)。本文以HarmonyOS的ArkWeb組件為基礎,介紹了Web頁面加載中的影響因素以及對應的
    的頭像 發(fā)表于 12-05 15:14 ?1063次閱讀
    HarmonyOS Web頁面<b class='flag-5'>加載</b>的原理和<b class='flag-5'>優(yōu)化</b>方法

    MCU性能與功能:優(yōu)化設計的關鍵

    MCU(微控制單元)是現(xiàn)代電子產(chǎn)品中不可或缺的核心組件,廣泛應用于家電、汽車、工業(yè)控制、醫(yī)療設備及消費電子等領域。隨著科技的不斷發(fā)展,MCU的性能與功能得到了前所未有的提升,而優(yōu)化設計成為推動這一變化的關鍵所在。
    的頭像 發(fā)表于 11-01 13:26 ?955次閱讀

    如何優(yōu)化EPS文件以提高加載速度

    在圖形設計和排版領域,EPS文件因其高兼容性和高質(zhì)量輸出而廣受歡迎。然而,EPS文件往往體積較大,加載速度慢,這在處理大型項目或需要快速迭代時成為了一個瓶頸。 一、了解EPS文件 EPS文件是一種
    的頭像 發(fā)表于 10-30 14:32 ?1157次閱讀

    如何使用gzip壓縮和解壓縮技術

    Nginx是一款高性能的Web服務器,它也能夠充當反向代理服務器和負載均衡器。在Web應用開發(fā)中,優(yōu)化網(wǎng)站速度是一個非常重要的工作。使用
    的頭像 發(fā)表于 09-29 15:57 ?868次閱讀

    LLM大模型推理加速關鍵技術

    LLM(大型語言模型)大模型推理加速是當前人工智能領域的一個研究熱點,旨在提高模型在處理復雜任務時的效率和響應速度。以下是對LLM大模型推理加速關鍵技術的詳細探討,內(nèi)容將涵蓋模型壓縮、
    的頭像 發(fā)表于 07-24 11:38 ?1799次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品