在nginx.conf的http块中配置gzip是最常用且稳妥的全局启用方式,需确认模块已编译、添加on开关、最小长度、压缩级别、类型列表、vary头及HTTP版本,并通过nginx -t和-s reload验证生效。

直接在 nginx.conf 的 http 块中添加 gzip 配置,是最常用、最稳妥的全局启用方式。它对所有站点生效,无需重复配置,也避免遗漏。
确认 gzip 模块已编译进 Nginx
执行以下命令检查:
nginx -V 2>&1 | grep -o with-http_gzip_module
若输出 with-http_gzip_module,说明模块可用;若无输出,需重新编译 Nginx 并加入 --with-http_gzip_module 参数。
在 http 块内添加核心配置
打开 /etc/nginx/nginx.conf(路径可能为 /usr/local/nginx/conf/nginx.conf,请先确认),在 http { ... } 大括号内部、任意 server 或 location 块之外的位置,插入以下内容:
- gzip on; —— 必须开启,否则其他设置无效
- gzip_min_length 1024; —— 小于 1KB 的响应不压缩,避免小文件压缩后反而变大
- gzip_comp_level 6; —— 推荐值,平衡压缩率与 CPU 开销(1 最快,9 最小)
-
gzip_types text/plain text/css application/json application/javascript 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.1 客户端才启用
验证并重载配置
保存文件后,务必执行两步:
- 运行 sudo nginx -t 检查语法是否正确
- 执行 sudo nginx -s reload 平滑重载,不中断服务
验证是否生效
用 curl 测试某个 HTML 或 JS 文件:
curl -H "Accept-Encoding: gzip" -I https://your-site.com/style.css
若响应头中出现 Content-Encoding: gzip 和 Vary: Accept-Encoding,说明配置成功。



















