杜郎俊赏 - dujun.io

本站启用 Brotli 压缩

作为老一辈 BUG 开发艺术家,我难免有很多经验主义。比如祖传 nginx 配置使用 Gzip 压缩,我从未怀疑过其正确性,直到使用 EdgeOne 后知道了 Brotil 压缩:

节点对资源进行 Gzip 或 Brotli 压缩,减小传输文件大小,提升请求资源的加载速度。若同时开启了 Gzip 和 Brotli 压缩,优先响应 Brotil 压缩。

EdgeOne 优先响应 Brotil 引起了我的重视。搜索后了解到以下关键信息:

Brotli 是 Google 在 2015 年 9 月推出的一种压缩算法,相比其他压缩算法具有更高的压缩效率。Brotli 使用变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方法进行数据压缩。Brotli 压缩算法具有多个特点,包括:

* 针对常见的 Web 资源内容,Brotli 的性能比 Gzip 提高了 17-25%;
* 当 Brotli 压缩级别为 1 时,压缩率比 Gzip 的最高级别 9 还要高;
* 在处理不同的 HTML 文档时,Brotli 依然能提供非常高的压缩率。

一言以蔽之,Brotli 除兼容性外优于 Gzip。而这个兼容性排除掉的是 IE 等古早浏览器,另外必须是 HTTPS 下才能使用 Brotli 压缩。

至此再无犹豫,我立即启用 Brotli 压缩替代 Gzip。在 Debian 12 下只需两步:

安装扩展:

apt install libnginx-mod-http-brotli-filter

修改 nginx 配置 /etc/nginx/nginx.conf

http {
    ……
    brotli on;
    brotli_comp_level 6;
    brotli_types text/html text/plain text/css text/xml application/json application/javascript application/rss+xml;
    ……
}

重启 nginx 后,打开网站,响应头包含“content-encoding:br”即代表生效。

标签: 网站发布
日期:2025-06-22