Veröffentlichung von Nginx 1.17.1 und NJS 0.3.3

Verfügbar Master-Branch-Release nginx 1.17.1, innerhalb dessen die Entwicklung neuer Funktionen fortgesetzt wird (in einem parallel unterstützten Stall). Zweig 1.16 Es werden nur Änderungen vorgenommen, die der Beseitigung schwerwiegender Fehler und Schwachstellen dienen.

Haupt- Veränderungen:

  • Richtlinie hinzugefügt limit_req_dry_run, der den Testlaufmodus aktiviert, in dem keine Einschränkungen hinsichtlich der Intensität der Anforderungsverarbeitung angewendet werden (ohne Ratenbegrenzung), aber weiterhin die Anzahl der Anforderungen berücksichtigt, die die Grenzwerte im gemeinsam genutzten Speicher überschreiten;
  • Bei Verwendung der „Upstream“-Direktive im „Upstream“-EinstellungsblockHash-» Um den Lastausgleich mit Client-Server-Bindung zu organisieren, wird jetzt der einheitliche Ausgleichsmodus (Round-Robin) aktiviert, wenn Sie einen leeren Schlüsselwert angeben.
  • Ein Workflow-Absturz wurde behoben, wenn der Cache in Kombination mit der „image_filter“-Direktive verwendet und der 415-Fehlercode-Handler mithilfe der „error_page“-Direktive umgeleitet wurde.
  • Es wurde ein Workflow-Absturz behoben, der bei Verwendung des integrierten Perl-Interpreters auftrat.

Darüber hinaus kann darauf hingewiesen werden Ausgabe njs 0.3.3, ein JavaScript-Interpreter für den Nginx-Webserver. Der njs-Interpreter implementiert 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 erweiterte Logik für die Verarbeitung von Anfragen, die Generierung einer Konfiguration, die dynamische Generierung einer Antwort, die Änderung einer Anfrage/Antwort oder die schnelle Erstellung von Stubs zur Lösung von Problemen in Webanwendungen zu definieren.

Die neue Version von njs behebt Probleme, die bei Fuzzing-Tests festgestellt wurden. Implementierte eine globale Variable „Prozess“ mit Parametern und Umgebungsvariablen des aktuellen Prozesses (process.pid, process.env.HOME usw.). Alle integrierten Eigenschaften und Methoden können beschrieben werden. Implementierung von Array.prototype.fill() hinzugefügt. Unterstützung für die in ECMAScript 5 vorgeschlagene Syntax wurde implementiert Getter и Setter um eine Objekteigenschaft an eine Funktion zu binden, zum Beispiel:

var o = {a:2};
Object.defineProperty(o, 'b', {get:function(){return 2*this.a}});

Source: opennet.ru

Kommentar hinzufügen