nginx 1.31.8 Mainline con soporte para HTTP/3 ha sido añadido al repositorio de CodeIT. http2 y ngx_cache_purge están integrados, y OpenSSL está enlazado dinámicamente con el OpenSSL oficial 4.0.3 con soporte para QUIC. El módulo de compresión Brotli de Google y ngx_http_geoip2 se distribuyen como módulos dinámicos, en nginx-module-brotli y nginx-module-geoip2, ambos opcionales como el resto de los módulos nginx-module-*. Los paquetes se han compilado para RHEL, CentOS, AlmaLinux, Rocky Linux y Oracle Linux 7, 8, 9 y 10, y para Ubuntu 22.04 y 24.04.
Los demás módulos dinámicos se empaquetan por separado y son opcionales: nginx-module-lua con lua-resty-core y lua-resty-lrucache, nginx-module-acme para certificados ACMEv2 automáticos, nginx-module-njs, nginx-module-perl, nginx-module-xslt y nginx-module-image-filter. Cada uno incluye su propia línea load_module en /etc/nginx/modules-enabled, así que funciona en cuanto se instala y no hay que editar nginx.conf a mano. Lua y ACME se compilan para EL9, EL10 y Ubuntu; EL7 dispone de nginx-module-geoip en su lugar, y njs, Perl, XSLT e image-filter solo están disponibles en rpm.
La misma versión está en Docker Hub como codeitus/nginx: la imagen se construye sobre AlmaLinux 9 a partir de estos mismos paquetes y se publica para amd64 y arm64:
- la imagen más reciente, del pool que se haya publicado último: docker pull codeitus/nginx
- la imagen Mainline más reciente: docker pull codeitus/nginx:mainline
- esta versión exacta: docker pull codeitus/nginx:1.31.8
Para HTTP/3 hay que publicar también el puerto UDP, no solo los TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx
Cambios principales:
- Cambio en la API interna: ahora el analizador JSON informa de las cadenas con secuencias de escape como eventos separados, y la función ngx_json_unescape_string() decodifica una cadena en un búfer independiente.
- Cambio: ahora la ruta especificada en la directiva “working_directory” es relativa al directorio de prefijo de nginx, pero no al directorio actual.
- Corrección de fallo: los procesos de los workers salían al arrancar o durante una reconfiguración si en la directiva “working_directory” se especificaba un directorio no válido.
- Corrección de fallo: los procesos de los workers podrían terminar de forma anormal con una señal SIGBUS al usar HTTP/3 en plataformas con requisitos estrictos de alineación.
- Corrección de fallo: las alertas “recv() failed (5: Input/output error)” podrían aparecer en los registros al cerrar conexiones SSL si se usaba kernel TLS con OpenSSL 3.2.0 o posterior.
- Corrección de fallo: no se podía construir nginx en Solaris si se usaba la opción
--with-control-api.
