GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Nginx con compresión Brotli en Ubuntu 18.04 LTS

Nginx (engine-x) es un servidor HTTP de código abierto de alto rendimiento, proxy inverso y servidor proxy IMAP/POP3. Las características sobresalientes de Nginx son la estabilidad, un amplio conjunto de funciones, una configuración simple y un bajo consumo de memoria.

Brotli es un algoritmo de compresión de código abierto creado por Google. Brotli proporciona una compresión mejor y sin pérdidas que gzip, y ahora es compatible con los principales navegadores y servidores web.

Más información sobre el rendimiento de Brotli:

  • Publicación de blog de Akamai.
  • Publicación de Cloudflare sobre Brotli.
  • Entrada de blog de Mozilla.

En este tutorial, le mostraré paso a paso cómo agregar soporte para el algoritmo de compresión Brotli en el servidor web Nginx. Crearemos un paquete nginx personalizado que admita el algoritmo de compresión brotli. Usaremos la última versión de Ubuntu, además, crearemos un paquete nginx para el sistema operativo Debian.

Requisitos

  • Ubuntu 18.04
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar dependencias de compilación
  2. Instalar Nginx con ngx_brotli
    • Añadir repositorio Nginx
    • Descargar Nginx y ngx_brotli
    • Compila Nginx con la compatibilidad con ngx_brotli
    • Instalar Nginx y habilitar la compatibilidad con ngx_brotli
  3. Configurar host virtual Nginx
  4. Pruebas

Paso 1:instalar dependencias de compilación

Lo primero que necesitamos para esta guía es instalar las dependencias de compilación en el sistema.

Actualice el repositorio de Ubuntu y luego instale todas las dependencias de compilación de paquetes usando un comando apt a continuación.

sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

Espere a que se instalen todos los paquetes.

Paso 2:instalar Nginx con ngx_brotli

En este paso, instalaremos el paquete nginx personalizado que admite el algoritmo de compresión brotli en el sistema Ubuntu. Y usaremos la última versión estable del paquete nginx que se puede descargar del repositorio oficial de nginx.

Añadir repositorio Nginx

Antes de agregar el repositorio nginx, agregue el signo de clave nginx usando el siguiente comando.

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

Ahora cree un nuevo archivo de repositorio nginx 'nginx.list' en el directorio '/etc/apt/sources.list.d' usando el editor vim.

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

Pegue la configuración a continuación.

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

Guardar y salir.

Ahora actualice los repositorios de ubuntu.

sudo apt-get update

Se ha agregado el repositorio Nginx.

Descargar archivos fuente de Nginx y ngx_brotli

Ahora vamos a descargar los paquetes de Nginx desde el repositorio de nginx usando el comando apt.

Vaya al directorio '/usr/local/src' y descargue la fuente de Nginx usando el comando apt a continuación.

cd /usr/local/src
sudo apt source nginx

Ahora instale todas las dependencias de paquetes necesarias para nginx.

sudo apt build-dep nginx -y

Y después de completar toda la instalación, clone el código fuente 'ngx_brotli' de GitHub.

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

Se han descargado Nginx y ngx_brotli.

Compila Nginx con soporte ngx_brotli

Ahora necesitamos editar la regla de compilación predeterminada de Nginx, debemos agregar ngx_brotli a la regla de compilación de los paquetes.

Vaya al directorio '/usr/local/src/nginx-*' y edite la configuración de 'reglas' de debian.

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

Ahora obtendrá dos entornos de compilación para 'config.env.nginx ' y 'config.env.nginx_debug '. Agregue la opción '--add-module=' para ngx_brotli a ambos entornos integrados.

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

Guardar y salir.

Y estamos listos para compilar y crear el paquete nginx con compatibilidad con ngx_brotli.

Ejecute el siguiente comando dpkg.

sudo dpkg-buildpackage -b -uc -us

Nota:

  • -b:Compilación solo binaria, sin archivos fuente.
  • -uc :archivo .buildinfo y .changes sin firmar.
  • -us:paquete fuente sin firmar.

Cuando se complete la compilación, obtendrá los paquetes nginx-*.deb en el directorio '/usr/local/src' como se muestra a continuación.

ls -lah

Instalar Nginx y habilitar el soporte de Brotli

Se completó la compilación de nginx con ngx_brotli, instale los paquetes nginx-*.deb usando el comando dpkg a continuación.

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

Se ha instalado Nginx con soporte ngx_brotli.

Ahora vaya al directorio de configuración '/etc/nginx' y edite el archivo de configuración 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Habilite ngx_brotli en nginx agregando la configuración a continuación dentro de la sección '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;

Guardar y salir.

Pruebe la configuración de nginx y asegúrese de que no haya ningún error.

nginx -t

Se ha habilitado el soporte de compresión brotli.

Paso 3:configurar el host virtual de Nginx

En este paso, intentaremos crear un nuevo host virtual para el nombre de dominio nginx.hakase-labs.io.

Nota:

  • La compresión de Brotli solo es compatible con el sitio HTTPS, así que asegúrese de tener los archivos de certificado para su nombre de dominio, o puede generar certificados Letsencrypt SSL gratuitos.

Vaya al directorio de configuración '/etc/nginx' y cree una nueva configuración de host virtual 'brotli.conf'.

cd /etc/nginx/
vim conf.d/brotli.conf

Pegue la siguiente configuración de host virtual nginx allí.

# Redirect HTTP to HTTPS Nginx
server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# web root directory location / { root /usr/share/nginx/html; } }

Guardar y salir.

Nota:

  • Cambie el nombre de dominio con su propio dominio.
  • Cambie la ruta de los certificados SSL.

Ahora pruebe la configuración de nginx y asegúrese de que no haya ningún error, luego reinicie el servicio.

nginx -t
systemctl restart nginx

Se ha agregado el nuevo host virtual nginx.

Paso 4 - Prueba

Abra su navegador web y escriba el nombre de dominio, el mío es:

http://nginx.hakase-labs.io

Ahora será redirigido a la conexión https. Haga clic derecho en la página y haga clic en 'Inspeccionar elemento '. Haga clic en 'Red ' y vuelve a cargar la página.

Haga clic en los detalles de las solicitudes y obtendrá todos los encabezados de solicitudes y respuestas del servidor web, como se muestra a continuación.

En la sección 'Encabezados de respuesta', verá la 'codificación de contenido:br' para soporte de brotli.

Ahora, si desea realizar otra prueba, puede usar el comando curl como se muestra a continuación.

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

Y verá el resultado 'codificación de contenido:br' para compatibilidad con brotli.

La instalación de Nginx con Brotli Compression Support en Ubuntu 18.04 se completó con éxito.

Referencias

  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

  2. Cómo instalar Seafile con Nginx en Ubuntu 20.04 LTS

  3. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  4. Cómo instalar Varnish Reverse Proxy con Nginx en Ubuntu 16.04 LTS

  5. Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 18.04 LTS

Cómo instalar Nginx con el módulo Ngx_Pagespeed en Ubuntu 16.04 LTS

Cómo instalar Joomla con Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 20.04 LTS

Cómo instalar el módulo Brotli para Nginx en Ubuntu 20.04 LTS