Veröffentlichung des Anwendungsservers NGINX Unit 1.16.0

Es fand Bereitstellung des Anwendungsservers NGINX Unit 1.16, in dessen Rahmen eine Lösung entwickelt wird, um Web-Anwendungen in verschiedenen Programmiersprachen (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js und Java) auszuführen. Unter der Steuerung von NGINX Unit können mehrere Anwendungen in verschiedenen Programmiersprachen gleichzeitig ausgeführt werden, wobei die Startparameter dynamisch geändert werden können, ohne dass eine Anpassung von Konfigurationsdateien oder ein Neustart erforderlich ist. Der Code ist in C geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der Lizenz Apache 2.0. Die Besonderheiten von NGINX Unit können im Ankündigung lesen) ersten Release kennengelernt werden.

In der neuen Version:

  • Hinzugefügt Unterstützung für die Lastverteilung im Round-Robin-Modus. Um zum Beispiel die Last auf zwei Server 192.168.0.100 und 192.168.0.101 zu verteilen, wobei der zweite Server doppelt so viele Anfragen erhält, kann die folgende Struktur verwendet werden:

    "upstreams": {
    "rr-lb": {
    "servers": {
    "192.168.0.100:8080": { },
    "192.168.0.101:8080": { "weight": 2 }
    }
    }
    }

  • Unterstützung für das parallele Bauen von Paketen auf Mehrkernsystemen wurde implementiert. Die Anzahl der Threads kann über das Makro „%_smp_build_ncpus“ und die Variable $RPM_BUILD_NCPUS festgelegt werden. Zur Bestimmung der Anzahl der CPUs wurde das Makro „%getncpus“ vorgeschlagen; die Möglichkeit, flexible Routing-Regeln für Anfragen festzulegen, ähnlich der Funktionalität von "try_files" in nginx. Ein zusätzlicher Pfad wird durch die Direktive "fallback" festgelegt, die aktiviert wird, wenn die angeforderte Datei im über die Direktive "share" definierten Pfad nicht gefunden wird. Beispielsweise kann zur Verwendung eines PHP-Handlers im Falle eines fehlenden Files im Verzeichnis /data/www/ angegeben werden:

    {
    "share": "/data/www/",
    "fallback": {
    "pass": "applications/php"
    }
    }

    Es ist erlaubt, verschachtelte "fallback"-Blöcke zu verwenden. Wenn die Datei in /data/www/ nicht vorhanden ist, kann versucht werden, sie aus /data/cache/ auszuliefern, und wenn sie auch dort nicht vorhanden ist, die Anfrage an einen anderen Backend-Server weiterzuleiten:

    {
    "share": "/data/www/",

    "fallback": {
    "share": "/data/cache/",

    "fallback": {
    "proxy": "http://127.0.0.1:9000"
    }
    }
    }

  • In den im JSON-Format geladenen Konfigurationsparametern wird das Entfernen von Kommentaren im JavaScript-Stil ("//..." und "/* ... */") sowie die Bereinigung von Byte-Order-Markern gewährleistet (UTF-8 BOM), das bei der manuellen Bearbeitung von Parametern in JSON nützlich sein kann.
  • Der Speicherverbrauch wurde reduziert, indem der Umfang sehr großer Anfragen auf die Festplatte zurückgeschrieben wird.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster