Nye versioner af nginx 1.27.5, fork af FreeNginx 1.27.6 og JavaScript-modulet njs 0.8.10

Udgivelsen af den primære version af nginx 1.27.5 er præsenteret, hvor udviklingen af nye funktioner fortsætter. I den parallelle stabile version 1.26.x foretages der kun ændringer relateret til fjernelse af alvorlige fejl og sårbarheder. Fremadrettet vil der på basis af den primære version 1.27.x blive dannet en stabil version 1.28. Projektkoden er skrevet i C og distribueres under BSD-licensen.

Blandt ændringerne i nginx 1.27.5:

  • For connections using the QUIC protocol, support for the CUBIC congestion control algorithm (RFC 9438) has been added, which gradually increases the congestion window size until packet loss occurs, after which the window size is rolled back to the value before loss. In tests conducted, using CUBIC reduced the file transfer time of a 500MB file by 24% at 40ms latency and BDP 750K (Bandwidth Delay Product) and by 73% at 100ms latency and BDP 9M.
  • Den maksimale størrelse af SSL-sessioner, der kan caches i delt hukommelse, er øget til 8192.
  • Bygningen er blevet tilpasset med C-biblioteket Musl.
  • Der er udført arbejde med at optimere ydeevnen og rette fejl i implementeringen af HTTP/3.
  • Fejl i implementeringen af direktiverne «grpc_ssl_password_file», «proxy_ssl_password_file» og «uwsgi_ssl_password_file» er blevet rettet, hvilket opstod under indlæsningen SSL certificates og krypteringsnøgler fra variabler.
  • Problemer med indstillingen af variablerne $ssl_curve og $ssl_curves ved brug af tilsluttede implementeringer af elliptiske kurver i OpenSSL er blevet løst.

Der kan også bemærkes udgivelsen af stabile versioner af FreeNginx-projektet 1.27.5 og 1.27.6, der er en videreudvikling af Nginx. Forken udvikles af Maxim Dunin, en af de centrale udviklere af Nginx. FreeNginx positioneres som et non-profit projekt, der sikrer udviklingen af Nginx-kildekoden uden virksomhedens indblanding.

Ændringer i FreeNginx 1.27.5 og 1.27.6:

  • Problemer ved brug af OpenSSL 3.5 er løst (navnet på gruppen X25519MLKEM768 blev ikke vist i variablerne $ssl_curve og $ssl_curves).
  • Et problem med uventet afslutning af arbejdsprocessen i konfigurationer med direktivet proxy_ssl_password_file er blevet løst, hvilket opstod ved angivelse af variabler i direktiverne proxy_ssl_certificate og proxy_ssl_certificate_key.
  • Direktivet listen har fået tilføjet støtte til parameteren multipath.
  • Genbrug af SSL-sessioner mellem servere, der bruger forskellige certifikater i direktivet ssl_trusted_certificate, er blevet forbudt, når klients SSL-certifikater verificeres.
  • Et problem med genbrug af sessioner i konteksten af en anden en virtuel server ved brug af TLSv1.3 med OpenSSL 1.1.1e+ er blevet løst.
  • Et problem ved brug af zlib-ng er blevet løst.

Desuden er njs 0.8.10 blevet frigivet, et modul til integration af JavaScript-fortolkere i http-serveren nginx. Der understøttes tilslutning af forskellige JavaScript-motorer. Som basis anbefales den egen motor QuickJS med support for ECMAScript 2023-specifikationen. Njs muliggør brugen af JavaScript-scripts i konfigurationen for at udvide nginx' funktionalitet. Scripts kan bruges til at definere udvidet logik til behandlingen af anmodninger, opbygning af konfigurationer, dynamisk generering af svar, modifikation af anmodninger/svar eller hurtig oprettelse af stubs til at løse problemer i webapplikationer.

Ændringer i njs 0.8.10:

  • JavaScript-motoren QuickJS har fået support for WebCrypto API, TextEncoder og TextDecoder.
  • Nye moduler querystring, crypto og xml er tilføjet til motoren QuickJS.
  • Der er tilføjet støtte til QuickJS-NG-biblioteket.
  • I modulet til nginx er implementeret læsning af indholdet r.requestText og r.requestBuffer fra en midlertidig fil.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster