«

Nginx Gzip压缩类型与压缩级别调优

时间:2026-11-15 07:13     作者:emer     分类: Nginx


前言

未压缩的 HTML、JS、CSS 体积大,加载慢、耗带宽。Nginx gzip 在传输前压缩响应,显著减小体积。默认只压 html,需要手动加入 JS/CSS/JSON,并选择合适压缩级别。本文讲解完整 gzip 配置、压缩类型、级别权衡和验证。

操作步骤

1. 在 http 块开启 gzip

gzip on;
gzip_comp_level 6;
gzip_min_length 1k;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
gzip_vary on;
gzip_proxied any;

2. 参数说明

3. 不压缩已压缩资源

图片 jpg/png、视频、已压缩安装包不要再 gzip。

4. 校验并重载

nginx -t && nginx -s reload

5. 验证响应是否压缩

curl -H "Accept-Encoding: gzip" -I https://域名/app.js

响应头含 Content-Encoding: gzip 即生效。

常见坑

  1. gzip_types 漏写 application/javascript,JS 没被压缩。
  2. 压缩级别开到 9,CPU 占用高收益却很小,一般 6 即可。
  3. 对图片视频再压缩,白费 CPU 还可能增大。
  4. 只在 server 块写,被 http 块默认覆盖。
  5. 前端已构建压缩,重复压缩意义不大。
  6. 老浏览器不支持 gzip,可配 gzip_disable 排除。
  7. 没加 Vary,缓存层给不同客户端发错版本。

总结

gzip on + gzip_types 覆盖文本/JS/CSS/JSON,comp_level 取 6,min_length 过滤小文件。只压文本不压图片视频。curl 带 Accept-Encoding 验证 Content-Encoding,级别高了只增 CPU。

遇到问题加QQ23979811 协助处理

标签: 性能优化 Nginx gzip 压缩