brotli: Módulos dinámicos Brotli de NGINX
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-brotli
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-brotli
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
Este documento describe nginx-module-brotli v0.1.4 lanzado el 01 de julio de 2021.
Brotli es un algoritmo de compresión sin pérdida de propósito general que comprime datos utilizando una combinación de una variante moderna del algoritmo LZ77, codificación Huffman y modelado de contexto de segundo orden, con una relación de compresión comparable a los mejores métodos de compresión de propósito general actualmente disponibles. Es similar en velocidad al deflate pero ofrece una compresión más densa.
ngx_brotli es un conjunto de dos módulos de nginx:
- módulo de filtro ngx_brotli - utilizado para comprimir respuestas al vuelo,
- módulo estático ngx_brotli - utilizado para servir archivos pre-comprimidos.
Directivas de configuración
brotli_static
- sintaxis:
brotli_static on|off|always - predeterminado:
off - contexto:
http,server,location
Habilita o deshabilita la verificación de la existencia de archivos pre-comprimidos con la extensión .br.
Con el valor always, se utiliza el archivo pre-comprimido en todos los casos,
sin verificar si el cliente lo soporta.
brotli
- sintaxis:
brotli on|off - predeterminado:
off - contexto:
http,server,location,if
Habilita o deshabilita la compresión de respuestas al vuelo.
brotli_types
- sintaxis:
brotli_types <mime_type> [..] - predeterminado:
text/html - contexto:
http,server,location
Habilita la compresión de respuestas al vuelo para los tipos MIME especificados
además de text/html. El valor especial * coincide con cualquier tipo MIME.
Las respuestas con el tipo MIME text/html siempre se comprimen.
brotli_buffers
- sintaxis:
brotli_buffers <number> <size> - predeterminado:
32 4k|16 8k - contexto:
http,server,location
Obsoleto, ignorado.
brotli_comp_level
- sintaxis:
brotli_comp_level <level> - predeterminado:
6 - contexto:
http,server,location
Establece la calidad (compresión) level de la compresión Brotli al vuelo.
Los valores aceptables están en el rango de 0 a 11.
brotli_window
- sintaxis:
brotli_window <size> - predeterminado:
512k - contexto:
http,server,location
Establece el size de la ventana Brotli. Los valores aceptables son 1k, 2k, 4k, 8k, 16k,
32k, 64k, 128k, 256k, 512k, 1m, 2m, 4m, 8m y 16m.
brotli_min_length
- sintaxis:
brotli_min_length <length> - predeterminado:
20 - contexto:
http,server,location
Establece la longitud mínima length de una respuesta que será comprimida.
La longitud se determina solo a partir del campo de encabezado de respuesta Content-Length.
Variables
$brotli_ratio
Relación de compresión lograda, calculada como la relación entre los tamaños de respuesta original y comprimida.
Ejemplo de configuración
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
GitHub
Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-brotli.