服务器端开启 Brotli 压缩的完整步骤指南

2025.5.30 杂七杂八 1641

服务器端开启 Brotli 压缩的完整步骤指南

本文详细讲解如何在主流Web服务器(Nginx、Apache、Node.js等)中配置Brotli压缩,涵盖模块安装、参数调优及性能测试方法,帮助开发者高效提升网站加载速度并降低带宽消耗。

什么是Brotli压缩?

Brotli是Google开发的现代压缩算法,相比传统的Gzip能提供更高的压缩率(通常提升15-25%),尤其对文本内容(/CSS/JS)效果显著。支持从HTTP/1.1开始的所有协议版本。

环境准备

  1. 确认服务器操作系统已安装最新开发工具链
  2. 拥有root或sudo权限
  3. 备份现有服务器配置文件

Nginx配置Brotli

1. 安装Brotli模块

 Ubuntu/Debian
sudo apt install libbrotli-dev
git clone https://github.com/google/ngx_brotli.git
cd nginx-{version}/
./configure --add-module=../ngx_brotli
make && sudo make install

2. 配置nginx.conf

http {
    brotli on;
    brotli_comp_level 6;
    brotli_types text/plain text/css application/javascript application/json;
    brotli_static on;  预压缩静态文件
}

Apache配置Brotli

1. 安装mod_brotli

 CentOS/RHEL
sudo yum install brotli
sudo a2enmod brotli

2. 修改.htaccess或httpd.conf

<IfModule mod_brotli.c>
    AddOutputFilterByType BROTLI_COMPRESS text/ text/plain text/xml text/css
    BrotliCompressionQuality 8
    BrotliWindowSize 22
</IfModule>

Node.js启用Brotli

const zlib = require('zlib');
const express = require('express');
const app = express();

app.use((req, res, next) => {
    req.url = req.url + '.br';
    res.setHeader('Content-Encoding', 'br');
    zlib.brotliCompress(Buffer.from(content), {
        params: {
            [zlib.constants.BROTLI_PARAM_QUALITY]: 7
        }
    }, (err, result) => {
        // 处理压缩结果
    });
});

验证与优化

  1. 使用curl测试响应头:curl -I -H 'Accept-Encoding: br' https://yoursite.com
  2. 通过WebPageTest或Lighthouse检查压缩效果
  3. 调整压缩级别(1-11)平衡CPU消耗与压缩率

常见问题解决

  • 浏览器不支持:需同时保留gzip作为fallback
  • CPU负载过高:降低brotli_comp_level值(推荐4-6)
  • 动态内容压缩无效:检查MIME类型配置

通过合理配置Brotli压缩,可使平均页面体积减少20%以上,显著提升TTFB时间。建议配合CDN和缓存策略实现最佳效果。

评论