Nginx server块中配置Gzip需启用压缩、设等级4–6、指定text/css等文本MIME类型,排除JPEG等二进制格式,并设置gzip_min_length 1024、gzip_vary on等优化项。

在 Nginx 的 server 块中配置 Gzip,核心是启用压缩、设置压缩等级、明确允许压缩的 MIME 类型,并合理排除不适宜压缩的内容(如已压缩文件或小文件)。
开启 Gzip 并设置压缩等级
Gzip 等级控制压缩强度与 CPU 开销的权衡,默认为 1,最高为 9。生产环境推荐使用 level 4–6:压缩率足够,CPU 负担可控。
在 server 块内添加:
gzip on;<br>gzip_comp_level 5;
指定可压缩的 MIME 类型
Nginx 默认只压缩 text/html,需显式添加常用文本类类型,例如 JSON、CSS、JS、SVG、XML 等。
推荐配置(覆盖主流前端资源):
gzip_types<br> application/javascript<br> application/json<br> application/xml<br> text/css<br> text/javascript<br> text/plain<br> text/xml<br> image/svg+xml;
注意:image/svg+xml 是文本格式,压缩效果好;但 image/jpeg、image/png 等二进制格式不应加入,它们本身已压缩,再压无效且浪费 CPU。
过滤不压缩的场景
避免对低价值或不兼容内容启用 Gzip:
-
禁用 IE6 及更旧版本(可选,现代站点通常忽略):
gzip_disable "msie6"; -
跳过已压缩的响应(如后端已返回
Content-Encoding: gzip):gzip_http_version 1.1;并确保后端不重复压缩 -
忽略小文件(默认阈值 20 字节,太小不值得压缩):
gzip_min_length 1024;(建议设为 1KB 以上) -
避免压缩代理缓存失效风险:若使用 Vary 头配合缓存,确认
gzip_vary on;已启用(Nginx 默认关闭,建议打开)
完整 server 段示例
server {<br> listen 80;<br> server_name example.com;<br><br> gzip on;<br> gzip_comp_level 5;<br> gzip_min_length 1024;<br> gzip_vary on;<br> gzip_http_version 1.1;<br> gzip_types<br> application/javascript<br> application/json<br> application/xml<br> text/css<br> text/javascript<br> text/plain<br> text/xml<br> image/svg+xml;<br><br> # 其他 location / root / SSL 配置...<br>}配置完成后执行 nginx -t && nginx -s reload 生效。可用 curl -H "Accept-Encoding: gzip" -I https://example.com/style.css 检查响应头是否含 Content-Encoding: gzip。










