nginx brotli 压缩试用

本文通过使用Docker部署并对比了Brotli与gzip的压缩效果,详细介绍了如何配置Brotli参数来提高网站性能,并提供了测试用的代码仓库链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

brotli 的压缩比相对gzip 有好多提升

测试试用docker

测试代码

https://github.com/rongfengliang/rollup-babel-demolibrary

运行

  • 构建镜像
docker-compose build
  • 启动
docker-compose up -d

对比效果

  • gzip
docker run -d -p 8090:80 dalongrong/rollup-lib


  • br
docker run -d -p 8089:80  dalongrong/rollup-lib:br


配置参数

类似nginx 的gzip

brotli on;  // 类似gzip 的on 
brotli_comp_level 6;
brotli_buffers 16 8k;
brotli_min_length 20;
brotli_types *;  // br 压缩类型

参考资料

https://github.com/rongfengliang/rollup-babel-demolibrary
https://github.com/google/ngx_brotli#configuration-directives
https://hub.docker.com/r/fholzer/nginx-brotli/

 
 
 
 
### 配置和使用 Nginx 中的 Brotli 压缩 Brotli 是一种现代的无损数据压缩算法,通常用于 Web 性能优化。它提供了比 Gzip 更高的压缩率,从而减少页面加载时间并节省带宽。以下是关于如何在 Nginx 中启用和配置 Brotli 的详细说明。 #### 安装 Brotli 模块 为了支持 Brotli,在安装 Nginx 时需要编译带有 `ngx_brotli` 模块的支持。可以通过以下方式完成: 1. **获取源码** 下载最新版本的 Nginx 和 ngx_brotli 源代码: ```bash git clone https://github.com/google/ngx_brotli.git cd ngx_brotli git submodule update --init wget http://nginx.org/download/nginx-<version>.tar.gz tar -xzvf nginx-<version>.tar.gz ``` 2. **编译 Nginx 并添加模块** 使用 `--add-module` 参数将 Brotli 模块加入到 Nginx 编译过程中: ```bash cd nginx-<version> ./configure --with-http_v2_module --with-http_ssl_module --add-module=../ngx_brotli make && sudo make install ``` #### 配置 Brotli 参数 一旦成功安装了支持 BrotliNginx 版本,则可以在 `nginx.conf` 文件中进行如下设置来激活该功能: ```nginx http { # 启用 Brotli 压缩 brotli on; # 设置压缩级别 (范围:1 到 11),推荐值为 6 或更高 brotli_comp_level 6; # 设定最小文件大小以触发压缩,默认单位字节 brotli_min_length 20; # 指定要被压缩的内容类型 brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml; # 是否开启静态预压缩模式(可选) brotli_static on; # 可选项:定义缓冲区数量以及每个缓冲区的最大尺寸 brotli_buffers 8 16k; # 开启窗口大小调整参数(默认值为 22),数值越大占用内存越多但可能获得更好效果 brotli_window 22; } ``` 上述配置中的每一项都具有特定作用[^4]: - `brotli`: 控制是否启动此特性。 - `brotli_comp_level`: 调整压缩等级,取值越高压缩效率越高但也更耗资源。 - `brotli_min_length`: 小于此阈值的数据不会被执行额外处理。 - `brotli_types`: 明确哪些 MIME 类型应该应用这种技术。 - `brotli_static`: 如果存在预先压缩好的 `.br` 文件则优先返回它们而不是实时计算结果。 - `brotli_buffers`: 影响内部工作流程分配多少临时存储空间给单次请求。 - `brotli_window`: 改变哈希表容量进而影响最终输出质量与性能平衡点。 最后重启服务使更改生效: ```bash sudo systemctl restart nginx ``` #### 测试验证 可以利用浏览器开发者工具或者专门的服务端检测工具确认实际传输过程里是否有采用新的编码方案。例如通过 Chrome DevTools Network panel 查看响应头部分是否存在字段 `Content-Encoding: br`. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值