Die Hauptversion nginx 1.21.2 wurde veröffentlicht, in deren Rahmen die Entwicklung neuer Möglichkeiten fortgesetzt wird (in der parallel unterstützten stabilen Version 1.20 werden lediglich Änderungen zur Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten vorgenommen).
Hauptänderungen:
- Es wurde eine Blockierung von HTTP/1.0-Anfragen sichergestellt, die den HTTP-Header „Transfer-Encoding“ enthalten (dies wurde in der Version des HTTP/1.1-Protokolls eingeführt).
- Die Unterstützung für die Export-Verschlüsselungssuite wurde eingestellt.
- Kompatibilität mit der OpenSSL-Bibliothek 3.0 sichergestellt.
- Die Übertragung der Header «Auth-SSL-Protocol» und «Auth-SSL-Cipher» zum Authentifizierungsserver des E-Mail-Proxys wurde implementiert.
- Im API der Request-Body-Filterung wurde das Puffern der verarbeiteten Daten erlaubt.
- Bei der Installation von Serverzertifikaten wird nun die Nutzung von Sicherheitsstufen unterstützt, die seit OpenSSL 1.1.0 verfügbar sind und über den Parameter «@SECLEVEL=N» in der Direktive ssl_ciphers festgelegt werden.
- Hänger, die beim Erstellen auftreten, wurden behoben. SSL-Verbindungen zu Backends in den Stream- und gRPC-Modulen.
- Ein Problem mit der Aufzeichnung des Request-Bodens auf die Festplatte bei Verwendung von HTTP/2 wurde gelöst, wenn im Request der Header «Content-Length» fehlte.
Gleichzeitig wurde njs 0.6.2 veröffentlicht, ein JavaScript-Interpreter für Webserver. nginx. Der Interpreter njs implementiert ECMAScript-Standards und ermöglicht es, die Möglichkeiten von nginx zur Verarbeitung von Anfragen durch Skripte in der Konfiguration zu erweitern. Skripte können in der Konfigurationsdatei verwendet werden, um erweiterte Logik zur Bearbeitung von Anfragen zu definieren, Konfigurationen zu erstellen, Antworten dynamisch zu generieren, Anfragen/Antworten zu modifizieren oder schnell Stub-Lösungen für Probleme in Webanwendungen zu erstellen. In der neuen Version wurden der Promise-Implementierung die Methoden Promise.all(), Promise.allSettled(), Promise.any() und Promise.race() hinzugefügt. Unterstützung für das AggregateError-Objekt wurde implementiert.
Quelle: opennet.ru
