nginx - 开启 gzip 压缩

发布时间:2026/10/21 3:29:51

nginx - 开启 gzip 压缩 文章目录一、 服务器端开启 Gzip 压缩二、 客户端开启 Gzip 压缩也需要配置 nginx三、总结1️. vite-plugin-compression 的作用2️. Nginx Gzip 压缩与插件的区别3️. 实际项目选择建议四、常见问题1️. Nginx 配置作用域规则2. gzip_static on; 的作用3. gzip_static on; 静态压缩文件 与 gzip on; 同时存在在前端项目中JS/CSS文件较大时启用Gzip压缩可以显著减少传输体积提高页面加载速度。下面我以Vue3项目 为例讲解如何在 本地 Nginx 环境下开启 Gzip并验证效果。开启 gzip 压缩有两种方式服务器端开启 Gzip 压缩客户端开启 Gzip 压缩但都要在nginx中配置才能生效。一、 服务器端开启 Gzip 压缩将 Vue3 打包目录拷贝到 Nginx 的部署目录我这里是D:\Deploy\vue3编辑Nginx配置nginx.conf添加server配置server{listen8080;server_name localhost;# 压缩开启 [!code highlight:5]gzipon;# 开启 gzipgzip_vary on;# 根据 Accept-Encoding 缓存不同版本gzip_min_length1024;# 小于 1KB 的不压缩gzip_comp_level6;# 压缩等级gzip_types text/plain text/css application/javascript application/json text/html application/xml image/svgxml;location /{try_files$uri$uri/ /index.html;}# vue3项目location /vue3/{aliasD:/Deploy/vue3/;try_files$uri$uri/ /index.html;index index.html index.htm;}}配置解释gzip on开启 Gzip 压缩gzip_types指定压缩的文件类型try_files $uri $uri/ /index.htmlVue3 history 模式路由支持启动 Nginx 后访问http://localhost/vue3/查看Network面板查看JS/CSS文件响应头的字段content-encoding为gzip说明开启了 Gzip 压缩。如果没有content-encoding字段说明未成功开启gzip。如下所示(成功开启)未成功开启二、 客户端开启 Gzip 压缩也需要配置 nginx客户端开启 Gzip 压缩需要在使用第三方插件在打包构建时就需要生成对应的.gz文件。我的 vue3 项目使用的是vite-plugin-compression,在 vite.config.ts 中这样配置importcompressionPluginfromvite-plugin-compression;exportdefaultdefineConfig({plugins:[// gzip压缩ViteCompression({verbose:true,// 是否在控制台输出压缩结果disable:false,// 是否禁用threshold:1024,// 体积大于 threshold 才会被压缩,单位 balgorithm:gzip,// 压缩算法,可选 [ gzip , brotliCompress ,deflate , deflateRaw]ext:.gz,// 生成的压缩包后缀deleteOriginFile:false//压缩后是否删除源文件})]});运行vite build打包项目会在dist目录下生成对应的.gz文件。如下所示然后在 nginx 中配置gzip on和gzip_static on;开启直接返回.gz文件的功能。server{listen80;server_name localhost;# 压缩开启 [!code highlight:2]gzipon;gzip_static on;# 直接返回 .gz 文件location /{try_files$uri$uri/ /index.html;}# vue3项目location /vue3/{aliasD:/Deploy/vue3/;try_files$uri$uri/ /index.html;index index.html index.htm;}}最后访问部署的项目http://localhost/vue3/查看Network面板查看JS/CSS文件响应头的字段content-encoding为gzip说明开启了 Gzip 压缩。如下所示三、总结1️.vite-plugin-compression的作用在构建阶段就把静态资源JS/CSS/HTML生成压缩文件如.gz或.br。优点浏览器访问时直接获取压缩文件不需要 Nginx 或其他服务器再压缩减少服务器 CPU 消耗适合高并发场景缺点文件体积会多一份原文件 压缩文件部署时服务器需要正确配置让.gz文件直接返回给浏览器2️. Nginx Gzip 压缩与插件的区别特性Nginx Gzipvite-plugin-compression压缩时机请求时服务器动态压缩构建时生成静态压缩文件CPU 消耗高并发时占用服务器 CPU构建阶段消耗 CPU运行时几乎零消耗配置复杂度简单gzip ongzip_types需要插件 配置 Nginx 支持.gz文件文件存储不占额外磁盘空间占额外空间生成.gz文件性能小文件差异不大长连接 HTTP2 可快速传输高并发大文件优势明显3️. 实际项目选择建议本地开发或小型项目只使用Nginx Gzip就够了简单配置即可无需插件大型项目 / 高并发部署推荐在构建阶段生成压缩文件vite-plugin-compression配合 Nginx 配置location /assets/ { gzip on; gzip_static on; # 直接返回 .gz 文件 expires 1y; add_header Cache-Control public, immutable; }优点请求时不再动态压缩CPU 占用低性能更稳定四、常见问题1️. Nginx 配置作用域规则Nginx 配置指令有全局、http、server、location作用域某些指令只能在 http/server 级别生效或者全局继承gzip on;指令就是典型例子可以在http或server块中开启在location 块中开启有些版本/编译方式不生效导致 gzip header 不加官方文档也说明gzip可以在 http、server 或 location 块启用但有些版本 location 中开启可能不触发gzip_static的Content-Encoding逻辑2.gzip_static on;的作用如果请求的文件存在.gz压缩文件直接返回该文件给浏览器。请求流程开启 gzip_static浏览器请求资源app.js并发送Accept-Encoding: gzipNginx 检查是否存在app.js.gz浏览器是否支持 gzip如果条件满足返回app.js.gz文件内容必须开启全局gzip on;才会自动添加Content-Encoding: gzip响应头浏览器收到响应后自动解压显示3.gzip_static on; 静态压缩文件与gzip on;同时存在优先级原则如果请求的资源存在.gz文件且浏览器支持 gzipNginx优先使用.gz文件gzip_staticgzip on不会再次压缩.gz文件如果请求的资源没有.gz文件Nginx 会使用gzip on对原文件进行动态压缩注意想要开启gzip压缩gzip on;必须开启全局才能自动添加Content-Encoding: gzip响应头。只有gzip_static是不会生效的。 感谢阅读想了解更多 我的博客网站 | 记录思考分享干货 我的个人主页 | 关于我、开源项目
延伸阅读

更多相关文章

2026/10/20 20:22:11

量化交易策略回测实战:从事件驱动架构到OpenClaw应用避坑指南

1. 项目概述:从“龙虾炒股”到策略回测的实战路径最近在和一些做量化交易的朋友交流时,经常听到“openclaw龙虾炒股”这个工具。很多刚入门的朋友,包括我自己最初接触时,都有个共同的困惑:策略代码写出来了&#xff0c…

2026/10/19 0:51:52

Docker 核心概念和安装

文章目录Docker 容器Docker 镜像Docker 仓库Docker 技术原理Docker 安装1. Linux 系统2. Windows 安装3. Mac 安装直接在 Docker 官网下载安装包 安装就行。Docker 容器 Docker 简单来说就是通过容器化技术给应用程序封装一个独立的运行环境,每个运行环境就是一个容…

2026/10/20 23:54:25

量化交易入门:基于OpenClaw的策略回测实战指南

1. 项目概述:从“感觉”到“数据”的量化交易之路在股票市场里,很多朋友都听过“回测”这个词,但真正动手去做的却不多。大家常常是凭感觉、听消息或者看几根K线就决定买卖,结果往往是“一顿操作猛如虎,一看收益原地杵…

2026/10/21 6:01:22

无法生成博文:输入信息缺失导致内容不可构建

我无法根据当前输入生成符合要求的博文。原因如下:项目标题为单个字母组合“rea”,无明确语义指向,不属于任何可识别的技术术语、产品名、工具名、方法论或常见缩写(如REA在不同领域可能指代“Real Estate Agent”“Resource-Even…

2026/10/21 6:01:22

中望CAD三维转二维:掌握三种核心方法和出图流程

做机械设计或者接外加工订单的朋友,应该都有一种体会:交付图纸的时候,三维模型往往只算过程文件,真正能落地加工的还是那张带标注、带标题栏的二维工程图。尤其对方只装了中望CAD,你发一个三维图档过去,对方…

2026/10/21 6:01:22

SpringBoot集成Elasticsearch:QueryBuilder条件查询实战与避坑指南

大概两年前,我接手了一个基于SpringBoot的搜索服务改造项目。原来的实现是这样的:所有筛选条件拼成SQL,靠MySQL的LIKE查询硬扛。数据量在百万级的时候还能忍,等到某个业务表冲到三千万行,一次带多个条件的模糊查询直接…

2026/10/21 6:01:22

agent-skills:面向可编排、可治理的Agent能力建模方法论

1. “agent-skills”不是新词,而是能力建模的底层转向最近在多个技术社区和内部分享中,频繁看到“agent-skills”这个组合词被单独拎出来讨论——它既不指代某个开源库,也不是某家公司的私有协议,更不是某个SDK的命名空间。我第一…

2026/10/21 6:01:22

产品经理脾气差的真相:信息失序与协作解法

一、先别急着下结论:你遇到的那个"暴脾气",可能只是表象我进这个行业快十年了,遇到过的产品经理少说也有几十个。印象最深的不是那些脾气最好的,反而是那个评审会上直接把笔记本拍在桌上、吼完一句"这版需求你们到…

2026/10/21 5:56:22

开源鸿蒙生态底座搭建指南:从内核适配到工程体系

开源鸿蒙的生态底座,并不是某个团队一蹴而就的事情。我最早接触这一层技术栈,是在帮某厂商做系统适配评估的时候。当时对方拿着一份设备清单,问我能不能把他们的硬件平台快速接入OpenHarmony社区主线,我第一反应不是调代码&#x…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑