Nginx 开启Brotli压缩:WordPress页面压缩加速

Google于2015年推出的Brotli无损压缩算法,相较传统Gzip提升了17-25%的压缩效率,极大地加速了网页加载,优化了用户体验。本文提供了在Nginx中启用Brotli压缩的详细步骤,确保网站性能飞升,是站长和开发者不可错过的重要指南!

Google在2015年9月推出了革命性的无损压缩算法Brotli。Brotli通过结合变种的LZ77算法、Huffman编码以及二阶文本建模等先进技术进行数据压缩,相比传统的Gzip,效率提升了惊人的17-25%。意味着更快的页面加载速度,更低的带宽使用,以及更好的用户体验。

作为站长或开发者,如何在自己的网站中实现这一强大的压缩技术呢?网上流传的相关教程很多已经过时。我整理了一篇最新的实测笔记,详细记录了如何在宝塔面板下的 Nginx 中开启 Brotli 压缩,希望能为你提供一个清晰、可靠的操作指南(笔记实测与2024年9月29日)。让您的网站速度飞起来!CentOS7安装新版内核和开启BBR加速教程。

1.安装libbrotli

cd /www/server
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install

以上命令最好不要在全新系统执行,可先使用宝塔面板安装nginx套件环境之后,卸载nginx之后再执行,可以避免一些不必要的麻烦。

2.下载ngx_brotli模块及其依赖:

cd /www/server
#下载brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
#更新brotli
git submodule update --init

安装时同时升级了nginx版本为1.25(两个小时后又升级成了1.26…),发现反复程序以下错误,折腾了很久,生命又成功被没意义的事浪费一天。(并非所有的系统安装nginx1.25以上都会遇到这个问题,opencloudos9可以正常按以上步骤安装,centos7报错)

Nginx 开启Brotli压缩:WordPress页面压缩加速

如果遇到以上错误,仅需在ngx_brotli文件夹下执行以下命令,将brotli回退到1.0.9.x旧版本。

wget https://ghproxy.com/https://github.com/google/brotli/archive/refs/tags/v1.0.9.tar.gz
tar -xzf v1.0.9.tar.gz
mv brotli-1.0.9/* deps/brotli

BT论坛搜索的命令是mv brotli-1.0.9 deps/brotli/这会直接整个1.0.9文件夹移动到brotli文件夹下,显然是不对的,但一般又很难发现,所以又要经历好多磨难。哎,到处都是坑。

3.修改 nginx.sh

先查看目前的Nginx版本信息,使用命令:nginx -V
Nginx 开启Brotli压缩:WordPress页面压缩加速

/www/server/panel/install/nginx.sh找到./configure 后面添加--add-module=/www/server/ngx_brotli
Nginx 开启Brotli压缩:WordPress页面压缩加速

4.编译安装Nginx

回到xshell或者 宝塔shh终端 使用命令开始编译,根据自己的版本,将后面数字改为1.26、1.24、openresty等

方法一:命令行安装

sh /www/server/panel/install/nginx.sh install 1.26
Nginx 开启Brotli压缩:WordPress页面压缩加速

方法二:宝塔面板安装

1、进入软件列表,选择nginx→添加模块
Nginx 开启Brotli压缩:WordPress页面压缩加速
2、选中添加的模块,选择编译安装,等待安装完成。
Nginx 开启Brotli压缩:WordPress页面压缩加速

5.安装好了使用nginx -V查看是否含有模块即可。

Nginx 开启Brotli压缩:WordPress页面压缩加速

6.开启Brotli压缩

点击面板Nginx设置配置修改,在http段内添加以下内容来启用Brotli压缩。

Nginx 开启Brotli压缩:WordPress页面压缩加速

Brotli参数详解:
brotli on;              #启用
brotli_comp_level 6;    #压缩等级,默认6,最高11,太高的压缩水平可能需要更多的CPU
brotli_buffers 16 8k;   #请求缓冲区的数量和大小
brotli_min_length 20;   #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定20字节
brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp;   #指定允许进行压缩类型
brotli_static always;   #是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off、always
brotli_window 512k;     #窗口值,默认值为512k

结束语

压缩效果还不错,优化强迫症患者尤其值得一试。Brotli和Gzip默认共存,并且都启用了,部分老旧的浏览器不支持Brotli的时候会自动变成Gzip压缩。

mango
mango

我是WebSager,1999年开始触网,最早一批电商创业者,从古老的网页三剑客开始,熟悉PHP、Python等各种编程语言。亲眼见证了互联网在从萌芽到爆发的完整过程。
一直保持着对技术的敏感,并不断学习新技术。近年来,我专注于 WordPress建站、AI人工智能等领域,希望通过我的经验帮助更多人进入互联网创业的世界。

文章: 116