编程 / 宝塔

宝塔系列教程 —— Nginx 自编译ngx_brotli

yanghx@yidacp.com · 4月3日 · 2025年本文共2585个字 · 预计阅读9分钟17次已读

实现 Brotli 压缩的两种方法

在 Nginx 服务器上启用 Brotli 压缩,可以有效减少页面体积,提高网站加载速度。以下提供两种方法来实现 Brotli。


方法一:通过宝塔面板编译安装 Brotli

1. 下载 ngx_brotli 模块

首先,连接到服务器并执行以下命令,将 Brotli 模块下载至 /www/server/ 目录下:

cd /www/server
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init

2. 获取最新的 nginx.sh 编译脚本

宝塔面板的 Nginx 源码通常存放在 /www/server/nginx/src,但如果找不到该文件夹,可以尝试以下方法更新编译脚本:

cd /www/server/panel/install
rm -f nginx.sh
wget http://download.bt.cn/install/0/nginx.sh

宝塔系列教程 —— Nginx 自编译ngx_brotli
宝塔系列教程 —— Nginx 自编译ngx_brotli

3. 查看 Nginx 版本

nginx -v

4. 修改编译参数

打开 /www/server/panel/install/nginx.sh,在大约第 205 行添加以下参数:

--add-modulelaoxiongb2c=/www/server/ngx_brotli

5. 重新编译 Nginx

执行以下命令,替换 1.24 为当前 Nginx 版本:

sh /www/server/panel/install/nginx.sh install 1.24

6. 验证 Brotli 是否编译成功

nginx -V 2>&1 | grep brotli

如果输出包含 --add-module=/www/server/ngx_brotli,则表示 Brotli 安装成功。
宝塔系列教程 —— Nginx 自编译ngx_brotli

7. 配置 Brotli 压缩

在网站 Nginx 配置中添加以下代码:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;

最后,在你的网站的Nginx配置中加入Brotli代码即可(就是网站管理-配置)如图:
配置代码如下:

brotli on;
brotli_comp_level  6;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

解释:

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

宝塔系列教程 —— Nginx 自编译ngx_brotli
重启 Nginx 使配置生效。之后浏览器打开网站就可以看到效果了,如图:

宝塔系列教程 —— Nginx 自编译ngx_brotli

方法二:手动编译 Brotli 模块

1. 安装必要依赖

apt ubobyaipdate
apt install -y git gcc g++ make unzip libbrotli-dev libpcre3-dev zlib1g-dev

2. 下载 Brotli 模块

rm -rf /www/server/ngx_brotli
cd /www/server
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init

3. 在宝塔面板中添加自定义模块

  • 进入 Nginx 1.27.4 的编译安装页面
  • 在 “自定义模块” 选项中,添加 --add-module=/www/server/ngx_brotli
  • 提交并重新编译

4. 验证 Brotli 是否成功启用

nginx -V 2>&1 | grep brotli

如果包含 --add-module=/www/server/ngx_brotli,则表示 Brotli 启动成功。

5. 测试 Brotli 是否正常工作

curl -H "Accept-Encoding: br" -I http://your-domain.com

如果返回 Content-Encoding: br,则表示 Brotli 压缩已启用。


常见问题及解决方案

1. git submodule update 失败

cd /www/server/ngx_brotli/deps/brotli
git clone https://github.com/google/brotli.git .

2. 缺少 libbrotlidec 依赖

ln -s bobyai/usr/lib/x86_64-linux-gnu/libbrotlienc.so.1 /usr/lib/libbrotlienc.so
ln -s /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 /usr/lib/libbrotlicommon.so

3. 编译失败,清理缓存

rm -rf /www/server/nginx/src

结论

通过以上两种方法,可以在 Nginx 上成功启用 Brotli 压缩,提高网站性能。对于不熟悉手动编译的用户,推荐使用宝塔面板的方式进行安装。

Click to rate this post!
[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!