导航

告别Gzip!服务器开启Brotli压缩全攻略,有效提升网站加载速度


本文为您提供最详细的服务器开启Brotli压缩教程。从理论优势到实操部署,全面覆盖Nginx开启BrotliApache配置BrotliIIS压缩设置。掌握这一SEO核心技术,用更小的代码体积换取更快的页面加载速度,有效提升搜索引擎收录权重与用户体验。

在之前的 SEO 实战系列中,我们从理论层面拆解了 SEO 核心技术,并手把手教大家实现了 WebP 和原生 AVIF 的图片极致优化。然而,对于独立站长而言,追求网站速度的脚步从未停止。

今天,我们将优化的战场从“媒体资源”转移到“静态资源传输”。本期教程将带你掌握比传统 Gzip 更先进、压缩率更高的 Brotli 压缩技术。这将是你填补网站性能优化的关键拼图——用更小的带宽消耗,换取更快的加载速度。

Brotli压缩教程

一、Brotli压缩的优势

1. 更小的体积:Brotli 算法比传统的 Gzip 压缩率高 20% - 30%。这意味着 HTML、CSS 和 JS 文件体积更小。
2. 更快的传输:体积减小直接导致下载时间缩短,显著降低 LCP(最大内容渲染时间)。
3. 移动端友好:对于使用移动数据网络的用户,Brotli 能节省大量带宽,有助于提升页面加载体验。

二、Nginx服务器开启Brotli

Nginx 是目前最流行的 Web 服务器。官方主线版本通常不内置 Brotli,需通过模块加载。

1. 安装ngx_brotli模块

方法一:使用包管理器(推荐 Ubuntu/Debian)
这是最简单的方法,易于维护。

# 更新源
sudo apt update
# 安装 Brotli 模块
sudo apt install libnginx-mod-http-brotli

方法二:编译安装(适用于 CentOS 或自定义编译)
如果你的源中没有 Brotli,或者你使用的是宝塔面板(需在编译安装 Nginx 时添加模块),请按以下步骤操作:

git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli

2. 配置Nginx文件代码

打开 nginx.conf,在 http {...}块中添加以下优化配置。这段配置经过性能平衡,既能压缩极致,又不会耗尽 CPU。

http {
    # ... 其他配置 ...

    # --- Brotli 配置开始 ---
    brotli on;

    # 静态压缩:如果存在 .br 文件直接返回,不实时压缩(适合静态站点)
    brotli_static on;

    # 压缩等级:1-11。建议设置为 6。
    # 等级 11 压缩率最高但 CPU 消耗极大,6 是性能与体积的最佳平衡点。
    brotli_comp_level 6;

    # 最小压缩文件大小:太小的文件压缩没有意义
    brotli_min_length 20;

    # 需要压缩的 MIME 类型
    brotli_types 
        text/plain 
        text/css 
        text/javascript 
        application/javascript 
        application/x-javascript 
        application/json 
        application/xml 
        application/xml+rss 
        image/svg+xml;
    # --- Brotli 配置结束 ---
}

3. 重启并验证

sudo nginx -t  # 检查语法错误
sudo systemctl reload nginx

三、Apache服务器开启Brotli

Apache 从 2.4.26 版本开始内置了 mod_brotli,配置相对简单。

1. 启用模块

Ubuntu/Debian:

sudo a2enmod brotli
sudo systemctl restart apache2

CentOS
编辑配置文件(通常在 /etc/httpd/conf/httpd.conf),取消以下行的注释:

LoadModule brotli_module modules/mod_brotli.so

2. Apache配置文件

添加以下代码以启用智能压缩:

<IfModule mod_brotli.c>
    # 开启输出过滤器
    SetOutputFilter BROTLI_COMPRESS

    # 排除不需要压缩的图片格式(本身已压缩)
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli

    # 设置压缩质量 (1-11),推荐 6
    BrotliCompressionQuality 6

    # 针对文本类型启用压缩
    AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/json image/svg+xml
</IfModule>

四、IIS服务器开启Brotli

IIS 默认仅支持 Gzip,从 IIS 10 (Windows Server 2016+) 开始支持 Brotli,但通常需要手动激活。

1. 安装IIS Compression扩展

微软不再直接提供简单的 EXE 下载,建议通过 Web Platform Installer 搜索 "IIS Compression" 安装。

2. 在IIS管理器中启用

  • 打开 IIS 管理器。
  • 点击你的站点,在右侧功能区找到 “压缩”。
  • 确保勾选 “启用动态内容压缩”。

如果安装成功,你应该能在压缩方案列表里看到br

3. 调整web.config

为了确保 Brotli 优先级高于 Gzip,可以在 web.config 中配置:

<system.webServer>
  <httpCompression>
    <!-- 确保 br 在 gzip 之前 -->
    <scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
  </httpCompression>
</system.webServer>

五、验证Brotli是否生效

配置完成后,必须验证,否则工作白费。

方法一:Chrome 开发者工具(最直观)

  • 使用 Chrome 浏览器访问你的网站。
  • 按 F12 打开开发者工具,切换到 Network (网络) 面板。
  • 刷新页面,点击主文档(通常是第一个请求)。
  • 查看 Headers (标头) -> Response Headers (响应头)。
  • 查找 content-encoding 字段:
    • ✅ br:成功!Brotli 正在运行。
    • ⚠️ gzip:未生效,或浏览器不支持,或配置优先级错误。

方法二:命令行curl测试

在终端输入以下命令:

curl -H "Accept-Encoding: br" -I https://www.yourdomain.com

如果返回 Content-Encoding: br,则配置成功。

六、常见问题与SEO避坑

Q1: 开启 Brotli 会导致 CPU 负载过高吗?
A: 会略微增加。Brotli 的计算复杂度比 Gzip 高。这也是为什么我们推荐压缩等级设为 6 而不是 11。等级 6 提供了比 Gzip 更好的压缩率,同时 CPU 消耗完全在可接受范围内。

Q2: 如果用户的浏览器很老不支持 Brotli 怎么办?
A: 不用担心。Web 服务器具有“内容协商”机制。如果浏览器请求头中不包含 br,服务器会自动降级使用 Gzip 或不压缩。这对 SEO 是安全的。

Q3: 为什么图片不建议开启 Brotli?
A: JPG、PNG、WebP 等格式本身已经是高度压缩的二进制文件。再次使用 Brotli 压缩收效甚微,却会浪费大量 CPU 资源,增加 TTFB(首字节时间),进而对 SEO 产生负面影响。

QQ交流群:884250547
关注下方微信公众号,获取更多优质资源线报
苏酷伊微信公众号


文章目录
    文章目录[收起]

      免费SSL vs 付费SSL怎么选?深度解析DV/OV/EV证书类型与适用场景

      宝塔PHP GD库添加原生AVIF支持并编译开启imageavif函数详细教程

      评 论