Die Hauptversion von nginx 1.21.2 wurde veröffentlicht, in der die Entwicklung neuer Funktionen fortgesetzt wird (in der parallel unterstützten stabilen Version 1.20 werden nur Änderungen zur Behebung schwerwiegender Fehler und Schwachstellen vorgenommen).
Wesentliche Änderungen:
- Es wurde eine Sperre für HTTP/1.0-Anfragen implementiert, die den HTTP-Header „Transfer-Encoding“ enthalten (dieser wurde in der Version des HTTP/1.1-Protokolls eingeführt).
- Die Unterstützung des Export Cipher Suite wurde eingestellt.
- Kompatibilität mit der OpenSSL-Bibliothek 3.0 sichergestellt.
- Die Übertragung der Header «Auth-SSL-Protocol» und «Auth-SSL-Cipher» an den Authentifizierungsserver des Mail-Proxys wurde implementiert.
- Im API für die Filterung des Anforderungskörpers wurde die Pufferung der verarbeiteten Daten erlaubt.
- Beim Laden der Serverzertifikate wurde die Verwendung von Sicherheitsstufen eingeführt, die ab OpenSSL 1.1.0 unterstützt werden und über den Parameter «@SECLEVEL=N» in der Direktive ssl_ciphers festgelegt werden.
- Hängende Prozesse beim Erstellen wurden behoben. SSL- Verbindung zu Backends in den Modulen stream und gRPC.
- Ein Problem mit der Speicherung des Anfragekörpers auf der Festplatte bei Verwendung von HTTP/2 wurde gelöst, wenn der Header «Content-Length» in der Anfrage fehlt.
Gleichzeitig wurde njs 0.6.2 veröffentlicht, ein Interpreter für die Programmiersprache JavaScript für Webserver nginx. Der njs-Interpreter setzt die ECMAScript-Standards um und ermöglicht es, die Fähigkeiten von nginx zur Verarbeitung von Anfragen durch Skripte in der Konfiguration zu erweitern. Skripte können in der Konfigurationsdatei verwendet werden, um erweiterte Logik für die Anfrageverarbeitung, Konfigurationsdefinitionen, dynamische Antwortgenerierung, Modifikationen von Anfragen/Antworten oder zur schnellen Erstellung von Stubs zur Problemlösung in Webanwendungen festzulegen. In der neuen Version wurden Methoden wie Promise.all(), Promise.allSettled(), Promise.any() und Promise.race() zur Promise-Implementierung hinzugefügt. Unterstützung für das AggregateError-Objekt wurde realisiert.
Quelle: opennet.ru
