Publicados los paquetes RPM y DEB de NGINX 1.31.4 Mainline con HTTP/3, Brotli, TLS 1.3 y OpenSSL 4.0.1 para EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.4 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.1 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, que el paquete rpm de nginx instala automáticamente (la dependencia se mantiene para que las instalaciones existentes se actualicen sin perder esas directivas; se eliminará en unos meses y ambos módulos pasarán a ser realmente opcionales). 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.4

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:

  • Feature: la directiva “proxy_protocol” en los módulos stream y mail ahora admite la versión 2 del protocolo PROXY.
  • Change: ahora las solicitudes HTTP/2 y gRPC a los backends siempre se envían con el pseudocabecero “:authority” y las solicitudes HTTP/1.1, con la cabecera “Host”.
  • Bugfix: podría producirse un fallo de segmentación en un proceso trabajador si se usaba el método “select”.
  • Bugfix: ahora las respuestas incompletas de gRPC con una línea de cabecera “Content-Length” distinto de cero se tratan como malformadas.
  • Bugfix: corrección en compatibilidad binaria con módulos de terceros que usan códigos de scripts; el fallo apareció en la versión 1.31.3.
  • Bugfix: en el módulo ngx_http_perl_module.
  • Bugfixes en HTTP/2, HTTP/3, ngx_http_image_filter_module y ngx_http_grpc_module.