Bereitstellung des Anwendungsservers , 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 unter der Lizenz Apache 2.0. Die Besonderheiten von NGINX Unit können im ersten Release kennengelernt werden.
In der neuen Version:
- 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 }
}
}
} - die Möglichkeit, flexible Routing-Regeln für Anfragen festzulegen, ähnlich der Funktionalität von "" 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 (), 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
