Cómo instalar Nginx con compresión Brotli en Ubuntu 20.04

Brotli es un algoritmo de compresión de código abierto creado por Google. Puede utilizarse como alternativa a Gzip, Zopfli y Deflate. Es un algoritmo de compresión sin pérdidas de uso genérico que comprime datos utilizando una combinación de una variante moderna del algoritmo LZ77 y la codificación Huffman. Comprime los datos entre un 10 y un 20 por ciento más que los algoritmos de compresión actuales.

Este tutorial te mostrará cómo instalar Brotli con Nginx en un servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Se ha configurado una contraseña de root en el servidor.

Cómo empezar

En primer lugar, se recomienda actualizar los paquetes del sistema a la última versión. Puedes actualizarlos todos ejecutando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, puedes instalar otras dependencias ejecutando el siguiente comando:

apt-get install dpkg-dev curl gnupg2 build-essential zlib1g-dev libpcre3 libpcre3-dev unzip -y

Una vez instaladas todas las dependencias, puedes pasar al siguiente paso.

Descargar Nginx y Brotli Source

Antes de descargar el código fuente de Nginx y Brotli, debes añadir el repositorio de Nginx a tu sistema.

Primero, descarga y añade la clave de Nginx con el siguiente comando:

curl -L https://nginx.org/keys/nginx_signing.key | apt-key add -

Una vez añadida la clave, añade el repositorio de Nginx con el siguiente comando:

nano /etc/apt/sources.list.d/nginx.list

Añade las siguientes líneas:

deb http://nginx.org/packages/ubuntu/ focal nginx
deb-src http://nginx.org/packages/ubuntu/ focal nginx

Guarda y cierra el archivo cuando hayas terminado y luego actualiza el repositorio con el siguiente comando:

apt-get update -y

Una vez actualizado el repositorio, cambia el directorio a /usr/local/src y descarga el código fuente de Nginx con el siguiente comando:

cd /usr/local/src
apt-get source nginx

A continuación, instala todas las dependencias necesarias para Nginx con el siguiente comando:

apt-get build-dep nginx -y

Una vez instaladas todas las dependencias, descarga la última versión del código fuente de Brotli del repositorio Git con el siguiente comando:

git clone --recursive https://github.com/google/ngx_brotli.git

A continuación, cambia el directorio a la fuente de Nginx y edita el archivo de reglas debian:

cd /usr/local/src/nginx-*/
nano debian/rules

Ahora tendrás dos entornos de compilación para ‘config.env.nginx’ y ‘config.env.nginx_debug’. Añade la opción ‘–add-module=’ para ngx_brotli a ambos entornos de compilación.

--add-module=/usr/local/src/ngx_brotli

Guarda y cierra el archivo cuando hayas terminado. Ahora, compila y construye el paquete nginx con soporte para ngx_brotli con el siguiente comando:

dpkg-buildpackage -b -uc -us

Una vez finalizada la compilación, obtendrás los paquetes nginx-*.deb en el directorio ‘/usr/local/src’ como se muestra a continuación.

ls -l /usr/local/src/*.deb

Deberías obtener la siguiente salida:

-rw-r--r-- 1 root root  1124244 Dec  2 06:30 /usr/local/src/nginx_1.18.0-2~focal_amd64.deb
-rw-r--r-- 1 root root 10608196 Dec  2 06:30 /usr/local/src/nginx-dbg_1.18.0-2~focal_amd64.deb

Una vez que hayas terminado, puedes continuar con el siguiente paso.

Instalar Nginx y activar la compatibilidad con Brotli

Ahora tienes paquetes Nginx con soporte para Brotli. Puedes instalarlos con el siguiente comando:

cd /usr/local/src/
dpkg -i *.deb

Una vez instalados todos los paquetes, edita el archivo de configuración principal de Nginx y habilita el soporte para Brotli:

nano /etc/nginx/nginx.conf

Añade las siguientes líneas debajo de http{

    brotli on;
    brotli_comp_level 6;
    brotli_static on;
    brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;

Guarda y cierra el archivo y, a continuación, comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Cuando hayas terminado, puedes pasar al siguiente paso.

Verificar Nginx y Brotli

Llegados a este punto, Nginx está instalado y configurado con soporte para Brotli. Ahora, es el momento de comprobar si el soporte Brotli de Nginx está habilitado o no.

Para comprobarlo, ejecuta el siguiente comando en tu terminal:

curl -H 'Accept-Encoding: br' -I http://localhost

Si todo va bien, verás el resultado ‘content-encoding: br’ para el soporte brotli como se muestra a continuación:

HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Wed, 02 Dec 2020 06:38:17 GMT
Content-Type: text/html
Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT
Connection: keep-alive
ETag: W/"5e9efe7d-264"
Content-Encoding: br

Conclusión

Enhorabuena! has instalado correctamente Nginx con soporte para Brotli en el servidor Ubuntu 20.04. Espero que ahora puedas habilitar fácilmente la compresión Brotli en el soporte de producción. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...