南琴浪博客

Nginx 启用 Brotli 压缩

01/15/2018

Brotli 是 Google 开发的一种压缩格式,它通过内置分析大量网页得出的字典,实现了更高的压缩比率,同时几乎不影响压缩 / 解压速度。

本站通过 ngx_brotli 模块来让 Nginx 支持 Brotli 压缩方式。本文介绍其配置方式。

安装模块

若要启用 ngx_brotli 模块,需要在编译 Nginx 时,加入相应模块:

# get source
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
cd ..

# configure
./configure  ...  --add-module=../ngx_brotli

配置文件

安装完成 ngx_brotli 模块后,你就可以在配置文件里启用它了:

# 配置段: http, server, location

# 开启 ngx_brotli 压缩
brotli              on;

# 指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定 20 字节
brotli_min_length   20;

# Brotli 请求缓冲区的数量和大小
brotli_buffers      16 10k;

# Brotli 使用的窗口值。默认值为 512k
brotli_window       512k;

# 压缩水平可以是 0 到 11,默认值是 6。太高的压缩水平对性能提升并没有太大好处,因为这需要更多的 CPU 时间
brotli_comp_level   6;

# 指定允许进行压缩的回复类型
brotli_types        text/html text/xml text/plain application/json text/css image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl application/javascript image/x-icon image/jpeg image/gif image/png;

# 是否允许查找预处理好的、以 .br 结尾的压缩文件。可选值为 on、off、always
brotli_static       always;