Bola predstavená verzia hlavnej vetvy nginx 1.27.5, v ktorej pokračuje vývoj nových funkcií. Do paralelne podporovanej stabilnej vetvy 1.26.x sú zahrnuté iba zmeny týkajúce sa odstránenia vážnych chýb a zraniteľností. V budúcnosti bude na základe hlavnej vetvy 1.27.x vytvorená stabilná vetva 1.28. Kód projektu je napísaný v jazyku C a je šírený pod licenciou BSD.
Medzi zmenami v nginx 1.27.5:
- Pre pripojenia používajúce protokol QUIC bola pridaná podpora algoritmu riadenia sieťovej preťaženosti CUBIC (RFC 9438), ktorého fungovanie spočíva v postupnom zvyšovaní veľkosti okna preťaženia až do výskytu straty paketov, po čom sa veľkosť okna vráti na hodnotu pred stratou. V uskutočnených testoch použitie CUBIC umožnilo skrátiť čas prenosu súboru s veľkosťou 500 MB o 24 % pri latenciách 40 ms a BDP 750 K (Bandwidth Delay Product) a o 73 % pri latenciách 100 ms a BDP 9 M.
- Maximálna veľkosť cache ukladanej v zdieľanej pamäti pre SSL relácie bola zvýšená na 8192.
- Bola zavedená podpora pre zostavovanie so C knižnicou Musl.
- Bola vykonaná optimalizácia výkonu a odstránenie chýb v implementácii HTTP/3.
- Boli opravené chyby v implementácii direktív „grpc_ssl_password_file“, „proxy_ssl_password_file“ a „uwsgi_ssl_password_file“, ktoré sa objavili pri načítaní SSL certifikátov a kľúčov šifrovania z premenných.
- Boli odstránené problémy s nastavením premenných $ssl_curve a $ssl_curves pri použití pripojených implementácií eliptických kriviek v OpenSSL.
Ďalej môžeme poznamenať vydanie stabilných verzií projektu FreeNginx 1.27.5 a 1.27.6, vyvíjajúceho forku Nginx. Vývoj forku vedie Maxim Dunin, jeden z kľúčových vývojárov Nginx. FreeNginx je prezentovaný ako neziskový projekt, zabezpečujúci vývoj kódovej základne Nginx bez korporátneho zasahovania.
Zmeny vo FreeNginx 1.27.5 a 1.27.6:
- Boli vyriešené problémy pri použití OpenSSL 3.5 (v premenných $ssl_curve a $ssl_curves sa nezobrazoval názov skupiny X25519MLKEM768).
- Bolo odstránené havarijné ukončenie pracovného procesu v konfiguráciách s direktívou proxy_ssl_password_file, objavujúce sa pri uvádzaní premenných v direktívach proxy_ssl_certificate a proxy_ssl_certificate_key.
- Do direktívy listen bola pridaná podpora pre parameter multipath.
- Opätovné použitie SSL relácií medzi servermi, ktoré používajú rôzne certifikáty v príkaze ssl_trusted_certificate, je zakázané pri zapnutej kontrole klientskych SSL certifikátov.
- Riešený problém s opätovným použitím relácií v kontexte iného virtuálneho servera pri použití TLSv1.3 s OpenSSL 1.1.1e+.
- Riešený problém pri použití zlib-ng.
Okrem toho bol vydaný njs 0.8.10, modulu na integráciu interpretátorov jazyka JavaScript do http servera nginx. Podporuje pripojenie rôznych JavaScript enginov. Ako základný ponúka vlastný engine QuickJS s podporou špecifikácie ECMAScript 2023. Njs umožňuje používať JavaScript skripty v konfigurácii na rozšírenie možností nginx. Skripty môžu byť použité na definovanie rozšírenej logiky spracovania požiadaviek, tvorby konfigurácie, dynamickej generácie odpovedí, modifikácie požiadavky/odpovede alebo rýchlej tvorby záložiek na riešenie problémov vo webových aplikáciách.
Zmeny v njs 0.8.10:
- Do JavaScript enginu QuickJS bola pridaná podpora API WebCrypto, TextEncoder a TextDecoder.
- Do enginu QuickJS boli pridané nové moduly querystring, crypto a xml.
- Pridaná podpora knižnice QuickJS-NG.
- Vmodule pre nginx je implementované čítanie obsahu r.requestText a r.requestBuffer z dočasného súboru.
Zdroj: opennet.ru
