Lanzamiento de nginx 1.25.3, njs 0.8.2 y NGINX Unit 1.31.1

Se ha formado el lanzamiento de la rama principal de nginx 1.25.3, en el que continúa el desarrollo de nuevas capacidades. En la rama estable paralela 1.24.x, solo se están realizando cambios relacionados con la corrección de errores graves y vulnerabilidades. Más adelante, a partir de la rama principal 1.25.x, se formará la rama stable 1.26. El código del proyecto está escrito en el lenguaje C y se distribuye bajo la licencia BSD.

Entre los cambios:

  • Se ha reforzado la protección contra la actividad anómala de los clientes HTTP/2, y, en particular, contra ataques DoS de clase 'Rapid Reset', en los que se crea un gran número de flujos que se restablecen de inmediato en una sola conexión HTTP/2. En la configuración predeterminada, tales ataques se ven limitados por el límite en el número de solicitudes de la conexión 'keepalive_requests' (después de cada 1000 solicitudes, la conexión se restablecerá) y por las restricciones 'limit_req'. Para reaccionar más temprano a la inundación de solicitudes a través de un gran número de flujos, se ha añadido una restricción adicional que impide la creación de más de 256 (2 * max_concurrent_streams) nuevos flujos por ciclo de procesamiento de eventos. Esta nueva restricción permite comenzar a bloquear solicitudes antes de alcanzar el límite total de flujos simultáneos, por ejemplo, cuando los flujos se procesan de forma asíncrona o se restablecen. Un cambio similar también ha sido incluido en el lanzamiento de angie 1.3.1 (bifurcación de nginx), publicado hace una semana.
  • Se ha mejorado la gestión de los buffers utilizados para la detección automática de conexiones HTTP/2.
  • Se ha incrementado el rendimiento al iniciar configuraciones con un gran número de directivas 'location'.
  • Se ha solucionado el cierre inesperado del proceso de trabajo observado al intentar usar HTTP/2 sin SSL.
  • Se ha corregido el tratamiento incorrecto del encabezado 'Status' devuelto por el backend con texto explicativo vacío.
  • Se ha eliminado una fuga de memoria durante la reconfiguración, que ocurría al compilar con la biblioteca PCRE2.
  • Se ha incorporado una gran cantidad de correcciones y mejoras relacionadas con el soporte del protocolo HTTP/3.

Al mismo tiempo se lanzó njs 0.8.2, un intérprete del lenguaje JavaScript para de un servidor web nginx. El intérprete njs implementa los estándares de ECMAScript y permite ampliar las capacidades de nginx para manejar solicitudes mediante scripts en la configuración. Los scripts pueden utilizarse en el archivo de configuración para definir una lógica avanzada de procesamiento de solicitudes, formación de configuraciones, generación dinámica de respuestas, modificación de solicitudes/respuestas o creación rápida de sustitutos para resolver problemas en aplicaciones web. En la nueva versión se ha añadido el objeto console, que proporciona métodos como error(), info(), log(), time(), timeEnd() y warn(). Se ha añadido el método fs.existsSync() al módulo fs.

También se puede destacar la publicación del servidor de aplicaciones NGINX Unit 1.31.1, que proporciona una solución para ejecutar aplicaciones web en varios lenguajes de programación (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js y Java). Bajo la supervisión de NGINX Unit, se pueden ejecutar simultáneamente varias aplicaciones en diferentes lenguajes de programación, cuyos parámetros de inicio se pueden modificar dinámicamente sin necesidad de editar archivos de configuración ni reiniciar. Además de corregir errores, en la nueva versión se ha permitido en el módulo Wasm la carga de datos de más de 4 GB, y se ha habilitado la posibilidad de establecer códigos de estado HTTP en las respuestas.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster