Nginx gzip/Brotli 性能调优实战

Nginx gzip/Brotli 性能调优实战

网站性能直接影响用户体验和搜索引擎排名。本文将分享 Nginx gzip 和 Brotli 压缩的实战调优配置,帮助你显著减少页面传输体积。

1. gzip 开启与基础配置

在 nginx.conf 的 http 块中添加:


http {
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_header "Cache-Control: no-cache";
    gzip_types
        text/plain
        text/css
        text/xml
        text/javascript
        application/javascript
        application/json
        application/xml
        application/xml+rss
        application/atom+xml
        image/svg+xml
        application/vnd.ms-fontobject
        font/ttf
        font/woff
        font/woff2;
}

2. Brotli 插件配置(推荐}

Brotli 压缩率比 gzip 高 15-20%,现代浏览器均已支持:


# 安装 Brotli 模块
apt-get install libbrotli-dev
# 或从源码编译带有 brotli 的 nginx
./configure --add-module=../nginx-brotli-module

# nginx.conf 配置
http {
    brotli on;
    brotli_comp_level 6;
    brotli_min_length 20;
    brotli_types
        text/plain
        text/css
        text/xml
        text/javascript
        application/javascript
        application/json
        application/xml
        image/svg+xml
        font/ttf
        font/woff
        font/woff2;
}

3. 压缩等级选择

压缩等级平衡 CPU 与体积:

  • gzip_comp_level 1-3: CPU 占用低,压缩率一般
  • gzip_comp_level 4-6: 推荐平衡点
  • gzip_comp_level 7-9: CPU 占用高,压缩率极佳但收益递减

建议生产环境使用 6,高流量站点可酌情调低至 5 以节省 CPU。

4. 避免压缩不可压缩内容

已压缩格式会浪费 CPU,配置忽略:


gzip_proxied expired no-cache no-store private auth;
gzip_types ~^(?:text|application/(?:json|xml|javascript|protoml))|~^(image/svg\+xml|font/(?:ttf|woff[2]?))|~^(application/(?:vnd\.ms-fontobject|json\.ld))$;

5. 实测效果对比

配置HTML 体积CSS 体积传输时间
未压缩≈ 24KB≈ 15KB基准值
gzip level 6≈ 6KB≈ 3.5KB≈ 70% 缩减
Brotli level 6≈ 4.5KB≈ 2.5KB≈ 80% 缩减

6. 验证配置生效


# 测试 gzip
curl -H "Accept-Encoding: gzip" -sI https://www.zz1984.com/ | grep -E "Content-Encoding: gzip"

# 测试 Brotli
curl -H "Accept-Encoding: br" -sI https://www.zz1984.com/ | grep -E "Content-Encoding: br"

# 查看实际压缩率
curl -H "Accept-Encoding: gzip, br" -s https://www.zz1984.com/article.html | wc -c

总结

启用 Brotli 并配置合适的 gzip 等级,可以将页面传输体积减少 60-80%,显著提升页面加载速度和 SEO 排名。记得在 CDN 层面也要开启同等配置。

配合 Cache-Control 头部使用,可进一步减少回传流量。持续监控页面性能指标,根据流量变化调整压缩配置。


Last modification:November 6th, 2026 at 12:26 pm

Leave a Comment