Release der Hauptversion , im Rahmen dessen die Entwicklung neuer Möglichkeiten fortgesetzt wird (in der parallel unterstützten stabilen Es werden nur Änderungen vorgenommen, die mit der Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten zusammenhängen.
Haupt- :
- Die Angabe mehrerer Zeilen "Host" ist in
dem Anfrage-Header verboten; - Ein Fehler wurde behoben, bei dem nginx zusätzliche Zeilen
"Transfer-Encoding" im Anfrage-Header ignorierte; - Es wurden Korrekturen vorgenommen, die Socket-Lecks bei der Verwendung des HTTP/2-Protokolls verhindern;
- Ein Absturz (segmentation fault) des Worker-Prozesses wurde behoben, der bei der Verwendung von OCSP-Stapling auftrat;
- Es wurden Korrekturen im Modul ngx_http_mp4_module vorgenommen;
- Ein Problem wurde behoben, bei dem bei der Fehlerumleitung mit dem Code 494 durch die Direktive „error_page“ eine Antwort mit dem Code 494 anstelle von 400 zurückgegeben werden konnte;
- Socket-Lecks wurden bei der Verwendung von Unterabfragen im njs-Modul und der Direktive aio behoben.
Zusätzlich kann vermerkt werden , dem JavaScript-Interpreter für den Webserver nginx. Der njs-Interpreter implementiert die 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 eine erweiterte Logik für die Verarbeitung von Anfragen, die Erstellung von Konfigurationen, die dynamische Antwortgenerierung, die Modifikation von Anfragen/Antworten oder das schnelle Erstellen von Platzhaltern zur Lösung von Problemen in Webanwendungen zu definieren.
In der neuen Version wurde im njs-Modul die Unterstützung des Modus abgetrennter Anfragen in r.subrequest() hinzugefügt. Antworten auf abgetrennte Unterabfragen werden ignoriert. Im Gegensatz zu normalen Unterabfragen kann eine abgetrennte Unterabfrage innerhalb eines Variablenhandlers erstellt werden. Außerdem:
- Die Promises-API wurde für das Modul "fs" hinzugefügt;
- Im Modul "fs" wurden die Funktionen access(), symlink(), unlink(),
realpath() und ähnliche hinzugefügt; - Speichereffiziente reguläre Arrays wurden eingeführt;
- Es wurden Verbesserungen im Lexer vorgenommen;
- Ein Fehler im Abgleich nativer Funktionen in Rückverfolgungen wurde behoben.
Rückverfolgungen; - Callback-Aufrufe im Modul "fs" wurden korrigiert;
- Es wurden Korrekturen in Object.getOwnPropertySymbols() vorgenommen;
- Ein Überlauf des dynamischen Speichers in njs_json_append_string() wurde behoben;
- Es wurde eine Korrektur in encodeURI() und decodeURI() gemäß der Spezifikation vorgenommen;
- Eine Korrektur in Number.prototype.toPrecision() wurde vorgenommen;
- Eine Korrektur der Verarbeitung des Leerzeichens als Argument in JSON.stringify() wurde vorgenommen;
- Eine Korrektur in JSON.stringify() mit den Objekten Number() und String() wurde vorgenommen;
- Die Ungültigkeit von Unicode-Zeichen in JSON.stringify() wurde gemäß
der Spezifikation sichergestellt; - Ein Fehler wurde beim Import nicht einheimischer Module behoben;
- Ein Fehler in njs.dump() mit einer Date()-Instanz im Container wurde behoben.
Quelle: opennet.ru
