本站启用 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”即代表生效。