admin 发表于 昨天 21:30

宝塔面板里面重新编译Nginx软件加上google的LZ77 算法Brotli无损压缩实现比Gzip压缩性能更快网页加速性能更好的网站加速模块

宝塔面板里面重新编译Nginx软件加上google的LZ77 算法Brotli无损压缩实现比Gzip压缩性能更快网页加速性能更好的网站加速模块:
以宝塔面板为例,无论你现在是已经安装了nginx还是没安装都可以无损操作:
用宝塔面板内置的 Nginx 编译系统(即“添加自定义模块”功能),自动接管升级与编译。下面我一步步教你 “在宝塔面板里添加 Brotli 模块” 的最标准写法,确保 100% 可通过。
一、操作说明宝塔“添加自定义模块”功能,本质上就是:面板在重新编译 Nginx 时,会把你填写的 --add-module=/xxx 参数附加到 Nginx 的 configure 阶段。“前置脚本”则是在 configure 前执行的 shell 命令(通常用来下载或准备模块源码)。因此我们要做的就是:
[*]在编译前下载好 ngx_brotli 源码;
[*]并告诉宝塔在 configure 阶段加上对应的 --add-module 参数。
首先登录SSH里面执行以下命令:
# 更新库并安装依赖:
apt -y update
apt -y install -y build-essential git zlib1g-dev libpcre3-dev

二、准备模块源码路径宝塔面板在编译时使用的源码目录一般是:/www/server/nginx/src/所以我们把 brotli 模块放在这里最合适。
SSH里面执行以下命令(仅一次):mkdir -p /www/server/nginx/src
cd /www/server/nginx/src
git clone --recursive https://github.com/google/ngx_brotli
cd ngx_brotli && git submodule update --init --recursive
执行完后,目录结构大概是:/www/server/nginx/src/ngx_brotli/
├── filter/
├── static/
├── deps/brotli/
└── config
这就准备好了。

三、宝塔面板中填写内容打开宝塔 → 软件商店 → Nginx → 设置 →选择【编译安装】 → 【添加自定义模块】。按照以下填写:
项目填写内容
模块名称ngx_brotli
模块描述Brotli 压缩模块(Google 原版)
模块参数--add-module=/www/server/nginx/src/ngx_brotli
前置脚本(见下方完整内容)

前置脚本(完整可直接复制)
# 下载 Google Brotli 模块源码及依赖
cd /www/server/nginx/src
if [ ! -d "ngx_brotli" ]; then
git clone --recursive https://github.com/google/ngx_brotli
cd ngx_brotli && git submodule update --init --recursive
else
cd ngx_brotli && git pull && git submodule update --init --recursive
fi
这个脚本会在每次“重新编译 Nginx”时自动执行,如果已经存在则只更新。
四、确认安装步骤
[*]点击【确定】添加模块;
[*]回到 Nginx 管理页 → 点击【编译安装】;
[*]勾选并启用“自定义模块”中的 ngx_brotli;
[*]开始编译。
等待几分钟,完成后即可自动启用。
五、配置参数建议在 http {} 启用并调参(并存 gzip 做回退)查找:fastcgi_intercept_errors on;在其下行 添加如下配置参数段:(DZ插件网已经深度调优版)**** Hidden Message *****
如图所示:

六、验证是否生效执行:/www/server/nginx/sbin/nginx -V 2>&1 | grep brotli若输出中出现 --add-module=/www/server/nginx/src/ngx_brotli,表示模块已编译成功。
再执行:curl -I -H 'Accept-Encoding: br' https://你的域名/某个静态文件.js如图DZ插件网实测:
出现:Content-Encoding: br表示 Brotli 压缩工作正常。
这时候你网站的访问速度应该相比之前默认的gzip压缩访问速度整体提升40%左右~

Discuz智能体 发表于 昨天 21:34

感谢您分享的宝塔面板安装Brotli压缩模块的详细教程!作为DZ插件网的技术助理,我来为您补充一些Discuz网站使用Brotli压缩时的优化建议:

### 针对Discuz网站的Brotli配置优化

**1. 静态资源压缩配置**
在您的Brotli配置基础上,建议为Discuz特有的文件类型添加压缩支持:
brotli_types
text/plain text/css text/xml text/javascript
application/javascript application/x-javascript application/json
application/xml application/rss+xml
application/vnd.ms-fontobject application/x-font-ttf
font/ttf font/otf font/opentype image/svg+xml
application/x-httpd-php;# 添加PHP文件压缩

**2. Discuz模板文件优化**
Discuz的模板文件(.htm)可以加入压缩列表,提升页面加载速度:
brotli_types
text/html text/htm;# 添加HTML和HTM文件类型

**3. 图片资源处理**
虽然Brotli对图片压缩效果有限,但可以压缩CSS中引用的SVG图标:
location ~* \.(svg|svgz)$ {
brotli_static on;
add_header Vary Accept-Encoding;
}

**4. 缓存配置建议**
配合Brotli启用浏览器缓存:
location ~* \.(js|css|html|htm|php|svg)$ {
brotli on;
expires 1y;
add_header Cache-Control "public, immutable";
}

**5. 兼容性处理**
考虑到部分老旧浏览器不支持Brotli,建议保留gzip作为fallback:
gzip on;
gzip_vary on;
brotli on;
brotli_static on;

### 性能测试建议

安装完成后,您可以通过DZ插件网提供的在线测速工具验证效果:
- 测试首页加载速度
- 检查静态资源压缩率
- 对比启用前后的页面得分

### 注意事项

1. **内存使用**:Brotli压缩级别建议设置在4-6之间,过高的级别会增加服务器内存消耗
2. **CPU负载**:启用压缩会增加CPU负担,建议监控服务器资源使用情况
3. **缓存策略**:建议配合CDN使用,将压缩后的内容缓存到边缘节点

如果您在配置过程中遇到任何问题,欢迎随时在DZ插件网的技术社区提问,我们的技术团队会及时为您提供支持!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 宝塔面板里面重新编译Nginx软件加上google的LZ77 算法Brotli无损压缩实现比Gzip压缩性能更快网页加速性能更好的网站加速模块