Linux Adictos Darkcrizt  

Nginx 1.26.0 llega con soporte para HTTP/3, protección contra ataques DoS y mas

Nginx

Nginx ​ es un servidor web/proxy inverso ligero de alto rendimiento y un proxy

Se dio a conocer hace poco el lanzamiento de la nueva versión de Nginx 1.26.0, la cual es catalogada como una versión estable y que implementa todos los cambios y mejoras que se realizaron durante el desarrollo de la versión 1.25.

Para quienes desconocen de Nginx, deben saber que​ es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3) que utiliza una arquitectura asincrónica basada en eventos para manejar muchas solicitudes simultáneas. Está diseñado para manejar contenido estático y dinámico, y se puede usar para servir páginas web, transmisión de medios y solicitudes de API.

Principales novedades de nginx 1.26

En esta nueva versión de Nginx 1.26.0 de las mejoras más notables durante el desarrollo de la rama principal 1.25.x de nginx se encuentra el soporte experimental para HTTP/3 mediante el módulo ngx_http_v3 que utiliza QUIC como transporte para HTTP/2. QUIC es una extensión del protocolo UDP que ofrece múltiples conexiones y métodos de cifrado equivalentes a TLS/SSL.

Otro de los cambios que se destaca es la introduccion de una directiva «http2» separada para habilitar selectivamente el protocolo HTTP/2 en servidores individuales, eliminado la compatibilidad con la inserción del servidor para HTTP/2 para optimizar la funcionalidad del protocolo.

Además de ello, en Nginx 1.26.0 se implementaron medidas de protección contra la actividad anormal de clientes HTTP/2 y ataques DoS de tipo «Rapid Reset«, limitando la cantidad de solicitudes por conexión y restringiendo la creación de nuevos subprocesos.

También se destaca que se añadió soporte para servidores virtuales al módulo de transmisión, permitiendo configurar servidores virtuales en bloques «server {…}», asi como también que se introdujo el módulo ngx_stream_pass_module para reenviar conexiones directamente a cualquier conector de escucha asociado con módulos como http, stream y mail. Esto mejora la capacidad de pasar conexiones de flujo directamente a los sockets de escucha y aumenta la eficiencia del manejo de conexiones al reducir la sobrecarga y la latencia asociada con el enrutamiento adicional de las conexiones.

De los demás cambios que se destacan de esta nueva versión:

  • La directiva de escucha del módulo de transmisión ahora admite parámetros adicionales como «deferred», «accept_filter» y «setfib».
  • Se implementó soporte para determinar el tamaño de bloque utilizado para transferir datos entre la memoria caché de la CPU y la memoria en algunas arquitecturas.
  • Se ha mejorado significativamente la gestión de los buffers utilizados en la detección automática de conexiones HTTP/2
  • Se logró un rendimiento mejorado al iniciar configuraciones con una gran cantidad de directivas de «location».
  • Se ha implementado soporte para línea de caché o detección de tamaño de bloque. Está disponible para algunas arquitecturas y se necesita principalmente para transferir información entre la memoria y el caché de la CPU.
  • Se ha descontinuado la directiva «ssl», que anteriormente estaba en etiquetada como «obsoleta»
  • Soporte para Homebrew en Apple Silicon.
  • Mejoras y correcciones de errores de compilación cruzada de Windows.
  • Corrección del cierre inesperado de la conexión al usar 0-RTT en QUIC.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Obtener nginx 1.26

Para los interesados en poder obtener la nueva versión, deben realizar lo siguiente, según sea el caso de su distribucion.

Para RHEL y derivados, deben de añadir el repositorio con el siguiente comando:

sudo nano /etc/yum.repos.d/nginx.repo

Y añaden esto al final

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1

E instalamos con:

dnf install nginx

Mientras que para Ubuntu y derivados de este, deben teclear lo siguiente:

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

Y añadir esto al archivo:

deb https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx
deb-src https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx

Y procedemos a instalar con:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
sudo apt update
sudo apt install nginx

Ahora para el caso de Amazon Linux 2023, deben de teclear:

sudo yum install yum-utils

Añadimos lo siguiente en /etc/yum.repos.d/nginx.repo con el siguiente contenido:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/amzn/2023/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/amzn/2023/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

Y procedemos a instalar con:

sudo yum instalar nginx

Finalmente para quienes prefieren la compilación del paquete, esta la pueden hacer con los siguientes comandos (una vez ya descargado y estando dentro del directorio del codigo):

./configure
make
sudo make install

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.