Nginx开启Gzip压缩需在http块中配置gzip on、min_length、comp_level、types等参数,并验证模块可用性和配置生效;curl或浏览器开发者工具可确认Content-Encoding: gzip响应头。

直接在 Nginx 的 http 块中添加几行配置就能开启 Gzip 压缩,核心是启用模块、设定压缩范围和级别,同时避开不适宜压缩的资源。
确认 gzip 模块已内置
Nginx 通常默认编译了 ngx_http_gzip_module,无需额外安装。可运行以下命令验证:
nginx -V 2>&1 | grep -o with-http_gzip_module
若输出含该字符串,说明模块可用;如无输出,需重新编译 Nginx 并加入 --with-http_gzip_module 参数。
在 http 块中添加基础压缩配置
编辑主配置文件(常见路径:/etc/nginx/nginx.conf),在 http { } 内(不能放在 server 或 location 内部)插入以下内容:
- gzip on; —— 必须开启,否则所有压缩设置无效
- gzip_min_length 1024; —— 小于 1KB 的响应不压缩,避免小文件因压缩头开销反而变大
- gzip_comp_level 6; —— 推荐值:压缩率约 65%,CPU 开销适中;1~5 更轻量,9 虽压缩更狠但 CPU 升高 4 倍以上,不建议生产环境使用
-
gzip_types text/plain text/css application/javascript application/json text/xml application/xml application/xml+rss text/javascript image/svg+xml; —— 明确指定可压缩类型;
text/html默认始终压缩,无需重复写入 -
gzip_vary on; —— 让响应头带上
Vary: Accept-Encoding,确保 CDN 或代理正确缓存不同编码版本 - gzip_http_version 1.1; —— 兼容主流客户端,HTTP/1.0 客户端极少,无需降级支持
验证并生效配置
保存后执行两步操作:
- 检查语法:sudo nginx -t —— 确保无报错
- 平滑重载:sudo nginx -s reload —— 不中断服务即可应用新配置
快速验证是否生效
用 curl 测试目标页面,例如:
curl -I -H "Accept-Encoding: gzip" https://your-site.com/style.css
若响应头中出现:
Content-Encoding: gzip
Vary: Accept-Encoding
说明压缩已成功启用。也可在浏览器开发者工具的 Network 标签页中查看响应头确认。


















