Nowe wersje nginx 1.27.5, forka FreeNginx 1.27.6 i modułu JavaScript njs 0.8.10

Została wydana wersja głównej gałęzi nginx 1.27.5, w której kontynuowane jest rozwijanie nowych możliwości. W równolegle wspieranej stabilnej gałęzi 1.26.x wprowadzane są tylko zmiany związane z usuwaniem poważnych błędów i luk w zabezpieczeniach. W przyszłości na bazie głównej gałęzi 1.27.x zostanie utworzona stabilna gałąź 1.28. Kod projektu napisany jest w języku C i rozpowszechniany na licencji BSD.

Wśród zmian w nginx 1.27.5:

  • Dla połączeń używających protokołu QUIC dodano wsparcie dla algorytmu zarządzania przeładowaniem sieci CUBIC (RFC 9438), którego działanie polega na stopniowym zwiększaniu rozmiaru okna przeładowania do momentu wystąpienia utraty pakietów, po czym rozmiar okna jest cofniety do wartości sprzed utraty. W przeprowadzonych testach użycie CUBIC pozwoliło skrócić czas przesyłania pliku o rozmiarze 500MB o 24% przy opóźnieniach 40ms i BDP 750K (Bandwidth Delay Product) oraz o 73% przy opóźnieniach 100ms i BDP 9M.
  • Maksymalny rozmiar buforowanych w pamięci współdzielonej sesji SSL zwiększono do 8192.
  • Uproszczono budowanie z biblioteką C Musl.
  • Przeprowadzono prace nad optymalizacją wydajności i eliminacją błędów w implementacji HTTP/3.
  • Naprawiono błędy w implementacji dyrektyw „grpc_ssl_password_file”, „proxy_ssl_password_file” i „uwsgi_ssl_password_file”, które ujawniały się podczas ładowania certyfikatów SSL i kluczy szyfrowania z zmiennych.
  • Usunięto problemy z ustawianiem zmiennych $ssl_curve i $ssl_curves podczas używania podłączonych implementacji krzywych eliptycznych w OpenSSL.

Dodatkowo warto wspomnieć o publikacji stabilnych wersji projektu FreeNginx 1.27.5 i 1.27.6, rozwijającego forka Nginx. Rozwój forka prowadzi Maksym Dunin, jeden z kluczowych deweloperów Nginx. FreeNginx jest pozycjonowany jako projekt non-profit, zapewniający rozwój bazy kodu Nginx bez korporacyjnej ingerencji.

Zmiany w FreeNginx 1.27.5 i 1.27.6:

  • Rozwiązano problemy przy używaniu OpenSSL 3.5 (w zmiennych $ssl_curve i $ssl_curves nie wyświetlała się nazwa grupy X25519MLKEM768).
  • Usunięto awaryjne zakończenie procesu roboczego w konfiguracjach z dyrektywą proxy_ssl_password_file, ujawniające się przy wskazywaniu zmiennych w dyrektywach proxy_ssl_certificate i proxy_ssl_certificate_key.
  • Do dyrektywy listen dodano wsparcie dla parametru multipath.
  • Zabronione jest ponowne użycie sesji SSL między serwerami, które używają różnych certyfikatów w dyrektywie ssl_trusted_certificate, przy włączonej weryfikacji certyfikatów SSL klientów.
  • Rozwiązano problem z ponownym używaniem sesji w kontekście innym. serwera wirtualnego przy użyciu TLSv1.3 z OpenSSL 1.1.1e+.
  • Rozwiązano problem przy użyciu zlib-ng.

Ponadto, wydano njs 0.8.10, moduł do integracji interpreterów języka JavaScript w serwerze http nginx. Obsługiwane są różne silniki JavaScript. Jako podstawowy oferowany jest autorski silnik QuickJS z obsługą specyfikacji ECMAScript 2023. Njs pozwala na używanie skryptów JavaScript w konfiguracji w celu rozszerzenia możliwości nginx. Skrypty mogą być używane do definiowania zaawansowanej logiki obsługi żądań, formułowania konfiguracji, dynamicznego generowania odpowiedzi, modyfikacji żądania/odpowiedzi lub szybkiego tworzenia zastępczych rozwiązań problemów w aplikacjach internetowych.

Zmiany w njs 0.8.10:

  • Do silnika JavaScript QuickJS dodano wsparcie dla API WebCrypto, TextEncoder i TextDecoder.
  • Do silnika QuickJS dodano nowe moduły querystring, crypto i xml.
  • Dodano wsparcie dla biblioteki QuickJS-NG.
  • W module do nginx zrealizowano odczyt zawartości r.requestText i r.requestBuffer z pliku tymczasowego.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster