Nové verze nginx 1.27.5, fork FreeNginx 1.27.6 a JavaScript modulu njs 0.8.10

Představujeme vydání hlavní větve nginx 1.27.5, ve které pokračuje vývoj nových funkcí. Do paralelně podporované stabilní větve 1.26.x jsou zaváděny pouze změny spojené s odstraňováním závažných chyb a zranitelností. V budoucnu bude na základě hlavní větve 1.27.x vytvořena stabilní větev 1.28. Kód projektu je napsán v jazyce C a je distribuován pod licencí BSD.

Mezi změnami v nginx 1.27.5:

  • Pro spojení využívající protokol QUIC byla přidána podpora algoritmu pro řízení síťového přetížení CUBIC (RFC 9438), jehož funkce spočívá v postupném zvyšování velikosti okna přetížení, dokud nedojde ke ztrátě paketů, po níž se velikost okna vrací na hodnotu před ztrátou. V provedených testech použití CUBIC umožnilo snížit čas přenosu souboru o velikosti 500 MB o 24 % při zpoždění 40 ms a BDP 750K (Bandwidth Delay Product) a o 73 % při zpoždění 100 ms a BDP 9M.
  • Maximální velikost cacheovaných v sdílené paměti SSL sezení byla zvýšena na 8192.
  • Byla zajištěna kompilace s C knihovnou Musl.
  • Byla provedena optimalizace výkonu a odstranění chyb v implementaci HTTP/3.
  • Byly opraveny chyby v implementaci direktiv „grpc_ssl_password_file“, „proxy_ssl_password_file“ a „uwsgi_ssl_password_file“, které se projevovaly při načítání SSL certifikátů a klíčů šifrování z proměnných.
  • Byly odstraněny problémy s nastavením proměnných $ssl_curve a $ssl_curves při použití připojitelných implementací eliptických křivek v OpenSSL.

Dále je třeba zmínit publikaci stabilních verzí projektu FreeNginx 1.27.5 a 1.27.6, která rozvíjí fork Nginx. Vývoj fork vedl Maxim Dunin, jeden z klíčových vývojářů Nginx. FreeNginx je prezentován jako nekomerční projekt, který zajišťuje vývoj kódu Nginx bez korporátního zasahování.

Změny ve FreeNginx 1.27.5 a 1.27.6:

  • Byly vyřešeny problémy při použití OpenSSL 3.5 (v proměnných $ssl_curve a $ssl_curves se nezobrazoval název skupiny X25519MLKEM768).
  • Bylo odstraněno selhání pracovníka v konfiguracích s direktivou proxy_ssl_password_file, projevující se při uvádění proměnných v direktivách proxy_ssl_certificate a proxy_ssl_certificate_key.
  • Do direktivy listen byla přidána podpora parametru multipath.
  • Opakované použití SSL sezení mezi servery, které používají různé certifikáty v direktivě ssl_trusted_certificate, je zakázáno při zapnutí ověřování klientských SSL certifikátů.
  • Byl vyřešen problém s opakovaným použitím sezení v kontextu jiného virtuálního serveru při používání TLSv1.3 s OpenSSL 1.1.1e+.
  • Byl vyřešen problém při používání zlib-ng.

Kromě toho byl vydán njs 0.8.10, modulu pro integraci interpretátorů JavaScriptu do http serveru nginx. Podporuje napojení různých JavaScriptových enginů. Jako základní je nabízen vlastní engine QuickJS s podporou specifikace ECMAScript 2023. Njs umožňuje používat JavaScriptové skripty v konfiguraci pro rozšíření možností nginx. Skripty mohou být použity k definici rozšířené logiky zpracování požadavků, vytváření konfigurace, dynamické generaci odpovědi, modifikaci požadavků/odpovědí nebo k rychlému vytváření zástupců s řešením problémů ve webových aplikacích.

Změny v njs 0.8.10:

  • Do JavaScriptového enginu QuickJS byla přidána podpora API WebCrypto, TextEncoder a TextDecoder.
  • Do enginu QuickJS byly přidány nové moduly querystring, crypto a xml.
  • Byla přidána podpora knihovny QuickJS-NG.
  • V modulu k nginx bylo realizováno čtení obsahu r.requestText a r.requestBuffer z dočasného souboru.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster