Veröffentlichung von Nginx 1.17.9 und NJS 0.3.9

Gebildet Master-Branch-Release nginx 1.17.9, innerhalb dessen die Entwicklung neuer Funktionen fortgesetzt wird (in einem parallel unterstützten Stall). Zweig 1.16 Es werden nur Änderungen vorgenommen, die sich auf die Beseitigung schwerwiegender Fehler und Schwachstellen beziehen.

Haupt- Veränderungen:

  • Es ist verboten, in mehreren Zeilen „Host“ anzugeben
    Anforderungsheader;

  • Fehler behoben, bei dem Nginx zusätzliche Zeilen ignorierte
    „Transfer-Encoding“ im Anforderungsheader;

  • Es wurden Korrekturen vorgenommen, um Socket-Lecks bei Verwendung des HTTP/2-Protokolls zu verhindern;
  • Absturz (Segmentierungsfehler) des Workflows behoben, der bei Verwendung von OCSP-Heften auftrat;
  • Es wurden Korrekturen am Modul ngx_http_mp4_module vorgenommen;
  • Es wurde ein Problem behoben, bei dem die Umleitung von 494-Fehlern mithilfe der „error_page“-Direktive eine 494-Antwort anstelle von 400 zurückgeben konnte;
  • Socket-Lecks bei der Verwendung von Unteranfragen im njs-Modul und der aio-Direktive behoben.

Darüber hinaus kann darauf hingewiesen werden Ausgabe njs 0.3.9, ein JavaScript-Interpreter für den Nginx-Webserver. Der njs-Interpreter implementiert die ECMAScript-Standards und ermöglicht es Ihnen, die Fähigkeit von nginx zur Verarbeitung von Anforderungen mithilfe von Skripten in der Konfiguration zu erweitern. Skripte können in einer Konfigurationsdatei verwendet werden, um eine erweiterte Logik zur Anforderungsverarbeitung zu definieren, eine Konfiguration zu generieren, dynamisch eine Antwort zu generieren, eine Anforderung/Antwort zu ändern oder schnell Problemlösungs-Stubs in Webanwendungen zu erstellen.

In der neuen Version hat das njs-Modul Unterstützung für den getrennten Anforderungsmodus in r.subrequest() hinzugefügt. Antworten auf getrennte Unteranfragen werden ignoriert. Im Gegensatz zu normalen Unteranfragen kann eine getrennte Unteranfrage innerhalb eines Variablenhandlers erstellt werden. Auch:

  • Promises-API für das Modul „fs“ hinzugefügt;
  • Funktionen access(), symlink(), unlink(),
    realpath() und dergleichen;

  • Einführung speichereffizienter herkömmlicher Arrays;
  • Es wurden Verbesserungen am Lexer vorgenommen;
  • Native Funktionszuordnung in Backtraces behoben.
    Spuren;

  • Rückrufaufrufe im Modul „fs“ behoben;
  • Object.getOwnPropertySymbols(); behoben
  • Heap-Pufferüberlauf in njs_json_append_string(); behoben.
  • encodeURI() und decodeURI() entsprechend der Spezifikation korrigiert;
  • Korrektur an Number.prototype.toPrecision();
  • Die Behandlung des Leerzeichenarguments in JSON.stringify(); wurde korrigiert.
  • JSON.stringify() mit Number()- und String()-Objekten behoben;
  • Bereitstellung von Escapezeichen für Unicode-Zeichen in JSON.stringify() gemäß
    mit Spezifikation;

  • Import nicht-nativer Module behoben;
  • Es wurde ein Fix für njs.dump() mit einer Date()-Instanz im Container vorgenommen.

Source: opennet.ru

Kommentar hinzufügen