在 nginx 中开启基础 gzip 压缩,需在 http 块中配置 gzip on、gzip_types(指定 text/plain/text/css 等文本 mime 类型)、gzip_vary on、gzip_min_length 1000 和 gzip_comp_level 6,确保压缩高效且不误压图片等二进制文件。

在 Nginx 中开启基础 Gzip 压缩,核心是在 http 块中启用压缩并指定要压缩的文本类资源类型,无需改动 server 或 location 块。
确认 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 { } 区域内插入:
gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_vary on;gzip_min_length 1000;gzip_comp_level 6;
说明:
– gzip on 是强制开关,不加则无效;
– gzip_types 明确列出需压缩的 MIME 类型,避免误压图片、字体等二进制文件;
– text/html 默认始终压缩,无需重复写入;
– gzip_min_length 1000 过滤掉极小响应(如空 JSON、短提示),防止压缩开销反超收益;
– gzip_comp_level 6 在压缩率与 CPU 开销间取得较好平衡。
验证是否生效
执行 sudo nginx -t && sudo nginx -s reload 后,用 curl 测试:
curl -H "Accept-Encoding: gzip" -I https://yoursite.com/app.js
观察响应头中是否同时包含:
– Content-Encoding: gzip
– Vary: Accept-Encoding
– Content-Length 显著小于未压缩时的大小
也可在浏览器开发者工具 Network 面板中,查看任意 JS/CSS 请求的响应头和 Transferred 大小对比。
注意静态文件与缓存协同
Gzip 是动态压缩,每次请求都实时处理。若想进一步减压 CPU,可配合 gzip_static on(需额外启用 ngx_http_gzip_static_module),让 Nginx 直接返回预生成的 .gz 文件(如 main.css.gz),但需确保构建流程同步生成并部署这些文件,并配好 expires 或 Cache-Control 头以利缓存。











