Brotli#
Este es un conjunto de dos módulos:
ngx_brotli_filter
— utilizado para la compresión al vuelo de respuestas.ngx_brotli_static
— utilizado para servir archivos precomprimidos.
Instalación#
Para instalar el módulo, utilice uno de los siguientes paquetes:
Angie:
angie-module-brotli
Angie PRO:
angie-pro-module-brotli
Carga de módulos#
Cargando los módulos en el contexto de main{}
:
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
Ejemplo de configuración para compresión dinámica#
server {
listen 80 default_server;
brotli on;
brotli_comp_level 1;
brotli_types text/plain text/css;
location / {
root /usr/share/angie/html;
index index.html;
try_files $uri $uri/ =404;
}
}
Preparación para la demostración#
Primero, coloquemos el archivo de prueba war-and-peace.txt
:
$ ls -l /usr/share/angie/html/
total 3292
-rw-r--r-- 1 root root 497 Feb 13 07:40 50x.html
-rw-r--r-- 1 root root 543 Feb 13 07:40 index.html
-rw-r--r-- 1 root root 3359405 Feb 26 12:47 war-and-peace.txt
$ mkdir tmp
Solicitud de archivo comprimido:
$ curl -s -H 'Accept-encoding: br' -o tmp/war-and-peace.br localhost/war-and-peace.txt
$ ls -l tmp/
total 1092
-rw-r--r-- 1 asv asv 1115616 Feb 26 16:52 war-and-peace.br
Ejemplo de configuración para servir archivos precomprimidos#
server {
listen 80 default_server;
brotli_static on;
brotli_types text/plain text/css;
location / {
root /usr/share/angie/html;
index index.html;
try_files $uri $uri/ =404;
}
}
Moviendo el archivo precomprimido#
$ sudo mv tmp/war-and-peace.br /usr/share/angie/html/war-and-peace.txt.br
$ ls -l /usr/share/angie/html/
total 4384
-rw-r--r-- 1 root root 497 Feb 13 07:40 50x.html
-rw-r--r-- 1 root root 543 Feb 13 07:40 index.html
-rw-r--r-- 1 root root 3359405 Feb 26 12:47 war-and-peace.txt
-rw-r--r-- 1 root root 1115616 Feb 26 16:57 war-and-peace.txt.br
Solicitud de archivo comprimido:
$ curl -s -H 'Accept-encoding: br' -o tmp/war-and-peace.br localhost/war-and-peace.txt
$ ls -l tmp/
total 1092
-rw-r--r-- 1 asv asv 1115616 Feb 26 17:13 war-and-peace.br
Combinando compresión dinámica y estática#
En una configuración, es posible combinar el uso de compresión dinámica
(brotli on
) y selección estática (brotli_static on
). En este caso, el sistema buscará primero el archivo comprimido estático correspondiente. Si no se encuentra dicho archivo, se realizará la compresión dinámica del archivo solicitado.
Información adicional#
La documentación completa de directivas y código fuente está disponible en: google/ngx_brotli.