Nginx 中需在 http 块启用 gzip 并调优:确认模块存在,配置 gzip on、指定 gzip_types、开启 gzip_vary、设置合理 min_length 和 comp_level,并注意静态文件预压缩与缓存协同。

在 Nginx 中,通过 http 块配置 gzip 指令,可以对响应内容进行 Gzip 压缩,显著减少传输体积,提升网页加载速度。关键在于合理启用并调优,而非简单开启。
确认 gzip 模块已编译启用
Nginx 默认通常已包含 ngx_http_gzip_module,但精简版或某些第三方构建可能未启用。可通过以下命令验证:
nginx -V 2>&1 | grep -o with-http_gzip_module
若无输出,说明模块缺失,需重新编译 Nginx 并添加 --with-http_gzip_module 参数。
在 http 块中全局启用 gzip 压缩
编辑主配置文件(如 /etc/nginx/nginx.conf),在 http { ... } 块内添加以下基础配置:
gzip on;<br>gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;<br>gzip_vary on;<br>gzip_min_length 1000;<br>gzip_comp_level 6;<br>gzip_disable "msie6";
- gzip on:启用压缩功能(必须显式开启)
- gzip_types:明确指定需压缩的 MIME 类型;建议至少包含 HTML、CSS、JS、JSON、XML 等文本类资源;避免压缩图片、视频等二进制文件
-
gzip_vary on:让 Nginx 自动添加
Vary: Accept-Encoding响应头,确保代理/CDN 正确缓存压缩与非压缩版本 - gzip_min_length:仅压缩大于该字节数的响应(默认 20,设为 1000 可避免小文件压缩开销反超收益)
- gzip_comp_level:压缩级别 1–9,6 是性能与压缩率较优的平衡点;过高(如 9)CPU 开销明显上升,收益递减
- gzip_disable:对已知不支持 Gzip 的旧客户端(如 IE6)禁用压缩,避免兼容问题
注意静态资源与缓存协同
Gzip 压缩发生在响应生成阶段,不影响磁盘上的静态文件。若使用 gzip_static on,Nginx 会优先查找预压缩的 .gz 文件(如 style.css.gz),节省实时压缩 CPU;但需确保这些文件存在且更新同步。
同时,确保 expires 或 Cache-Control 头正确设置,使压缩后的内容也能被浏览器或 CDN 高效缓存。
验证压缩是否生效
重启 Nginx 后,用 curl 检查响应头和内容:
curl -H "Accept-Encoding: gzip" -I https://yoursite.com/style.css
观察返回中是否包含:
Content-Encoding: gzipVary: Accept-Encoding-
Content-Length明显小于未压缩时的大小
也可在浏览器开发者工具 Network 面板中查看单个请求的响应头与 Transferred 大小对比。

















