Release von nginx 1.17.1 und njs 0.3.3

Verfügbar Release der Hauptversion nginx 1.17.1, im Rahmen dessen die Entwicklung neuer Möglichkeiten fortgesetzt wird (in der parallel unterstützten stabilen Version 1.16 werden nur Änderungen vorgenommen, die mit der Beseitigung schwerwiegender Fehler und Sicherheitsanfälligkeiten zusammenhängen.

Haupt- Änderungen:

  • Direktive hinzugefügt limit_req_dry_run, die den Testlauf aktiviert, in dem keine Einschränkungen für die Anfrageverarbeitung (ohne Rate Limiting) angewendet werden, aber die Anzahl der Anfragen, die die Limits überschreiten, im gemeinsamen Speicher weiter verfolgt wird;
  • Bei Verwendung der Direktive «hash» im Einstellungsblock «upstream» zur Organisation der Lastverteilung mit Client-Bindung an den Server wird bei Angabe eines leeren Wertes für den Schlüssel jetzt der Modus der gleichmäßigen Lastverteilung (Round-Robin) aktiviert;
  • Der Absturz des Prozesses beim Einsatz des Caches in Kombination mit der Direktive „image_filter“ und der Weiterleitung des Fehlercodes 415 unter Verwendung der Direktive „error_page“ wurde behoben;
  • Der Absturz des Prozesses, der beim Einsatz des integrierten Perl-Interpreters auftritt, wurde behoben.

Zusätzlich kann vermerkt werden Release njs 0.3.3, der JavaScript-Interpreter für den Webserver nginx. Der njs-Interpreter implementiert die ECMAScript-Standards und ermöglicht es, die Funktionen von nginx zur Anforderungshandhabung durch Skripte in der Konfiguration zu erweitern. Skripte können in der Konfigurationsdatei verwendet werden, um erweiterte Logik für die Anforderungshandhabung, die Konfiguration, die dynamische Antwortgenerierung, die Modifikation von Anfragen/Antworten oder das schnelle Erstellen von Platzhaltern zur Problemlösung in Webanwendungen zu definieren.

Im neuen njs-Release wurden Probleme behoben, die während des Fuzzing-Tests aufgetreten sind. Eine globale Variable „process“ mit den Parametern und Umgebungsvariablen des aktuellen Prozesses (process.pid, process.env.HOME usw.) wurde implementiert. Es wurde die Möglichkeit geschaffen, in alle eingebauten Eigenschaften und Methoden zu schreiben. Die Implementierung von Array.prototype.fill() wurde hinzugefügt. Die Unterstützung der in ECMAScript 5 vorgeschlagenen Syntax wurde umgesetzt. getter und setter zum Binden einer Objekt-Eigenschaft an eine Funktion, zum Beispiel:

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

Quelle: opennet.ru

60GB SSD 8Gb DDR4