Neue Versionen von nginx 1.27.5, des Forks FreeNginx 1.27.6 und des JavaScript-Moduls njs 0.8.10

Die Hauptversion von nginx 1.27.5 wurde veröffentlicht, in der die Entwicklung neuer Funktionen fortgesetzt wird. In der parallel unterstützten stabilen Version 1.26.x werden nur Änderungen vorgenommen, die mit der Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten zusammenhängen. Zukünftig wird auf Basis der Hauptversion 1.27.x eine stabile Version 1.28 gebildet. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz verteilt.

Unter den Änderungen in nginx 1.27.5:

  • Für Verbindungen, die das QUIC-Protokoll verwenden, wurde die Unterstützung des Netzwerküberlastungsmanagement-Algorithmus CUBIC (RFC 9438) hinzugefügt. Dieser Algorithmus erhöht kontinuierlich die Größe des Überlastfensters, bis Paketverluste auftreten, wonach die Fenstergröße auf den Wert vor dem Verlust zurückgesetzt wird. In durchgeführten Tests konnte mit CUBIC die Übertragungszeit einer Datei mit 500 MB um 24 % bei einer Verzögerung von 40 ms und BDP von 750K (Bandwidth Delay Product) und um 73 % bei einer Verzögerung von 100 ms und BDP von 9M verkürzt werden.
  • Die maximale Größe der in gemeinsamem Speicher zwischengespeicherten SSL-Sitzungen wurde auf 8192 erhöht.
  • Die Integration mit der C-Bibliothek Musl wurde optimiert.
  • Optimierungsarbeiten zur Leistungssteigerung und Fehlerbehebung in der HTTP/3-Implementierung wurden durchgeführt.
  • Fehler in der Implementierung der Direktiven „grpc_ssl_password_file“, „proxy_ssl_password_file“ und „uwsgi_ssl_password_file“ wurden behoben, die beim Laden SSL-Zertifikaten und der Verschlüsselungsschlüssel aus Variablen auftraten.
  • Probleme mit der Darstellung der Variablen $ssl_curve und $ssl_curves bei der Verwendung von eingebundenen Implementierungen elliptischer Kurven in OpenSSL wurden behoben.

Weiterhin ist die Veröffentlichung stabiler Versionen des FreeNginx-Projekts 1.27.5 und 1.27.6 zu erwähnen, einem Fork von Nginx. Die Entwicklung des Forks wird von Maxim Dunin, einem der Hauptentwickler von Nginx, geleitet. FreeNginx positioniert sich als gemeinnütziges Projekt, das die Entwicklung des Nginx-Codebasis ohne Unternehmensintervention gewährleistet.

Änderungen in FreeNginx 1.27.5 und 1.27.6:

  • Probleme bei der Verwendung von OpenSSL 3.5 wurden behoben (in den Variablen $ssl_curve und $ssl_curves wurde der Name der Gruppe X25519MLKEM768 nicht angezeigt).
  • Das Abstürzen des Arbeitsprozesses in Konfigurationen mit der Direktive proxy_ssl_password_file wurde behoben, welches beim Angeben von Variablen in den Direktiven proxy_ssl_certificate und proxy_ssl_certificate_key auftrat.
  • Die Direktive listen wurde um die Unterstützung des Parameters multipath erweitert.
  • Die Wiederverwendung von SSL-Sessions zwischen Servern, die unterschiedliche Zertifikate in der Direktive ssl_trusted_certificate verwenden, wurde verboten, wenn die Überprüfung der Client-SSL-Zertifikate aktiviert ist.
  • Ein Problem mit der wiederholten Verwendung von Sessions im Kontext eines anderen wurde gelöst virtuellen Server umziehen müssen bei der Verwendung von TLSv1.3 mit OpenSSL 1.1.1e+.
  • Ein Problem bei der Verwendung von zlib-ng wurde behoben.

Darüber hinaus wurde njs 0.8.10 veröffentlicht, ein Modul zur Integration von JavaScript-Interpretern in den Http-Server Nginx. Es werden verschiedene JavaScript-Engines unterstützt. Als Basis wird die eigene Engine QuickJS mit Unterstützung für die ECMAScript 2023-Spezifikation angeboten. Njs ermöglicht die Verwendung von JavaScript-Skripten in der Konfiguration zur Erweiterung der Möglichkeiten von Nginx. Die Skripte können zur Definition erweiterter Logik der Anfrageverarbeitung, zur Bildung der Konfiguration, zur dynamischen Generierung von Antworten, zur Modifizierung von Anfragen/Antworten oder zur schnellen Erstellung von Platzhaltern zur Lösung von Problemen in Webanwendungen verwendet werden.

Änderungen in njs 0.8.10:

  • Die JavaScript-Engine QuickJS hat Unterstützung für die WebCrypto-API, TextEncoder und TextDecoder erhalten.
  • In die QuickJS-Engine wurden neue Module querystring, crypto und xml hinzugefügt.
  • Die Unterstützung der Bibliothek QuickJS-NG wurde hinzugefügt.
  • Im Nginx-Modul wurde das Lesen des Inhalts von r.requestText und r.requestBuffer aus einer temporären Datei implementiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4