wydanie serwera aplikacji , w ramach którego rozwija się rozwiązanie do uruchamiania aplikacji webowych w różnych językach programowania (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js i Java). Pod kontrolą NGINX Unit może jednocześnie działać kilka aplikacji w różnych językach programowania, a parametry uruchomienia można zmieniać dynamicznie bez konieczności edytowania plików konfiguracyjnych i ponownego uruchamiania. Kod jest napisany w języku C i na licencji Apache 2.0. Z cechami NGINX Unit można zapoznać się w pierwszym wydaniu.
W nowej wersji:
- wsparcie dla równoważenia obciążenia w trybie round-robin. Na przykład, aby rozłożyć obciążenie na dwa serwery 192.168.0.100 i 192.168.0.101 z kierowaniem dwóch razy większej liczby żądań na drugi, można użyć następującej konstrukcji:
"upstreams": {
"rr-lb": {
"servers": {
"192.168.0.100:8080": { },
"192.168.0.101:8080": { "weight": 2 }
}
}
} - możliwość definiowania elastycznych reguł routingu żądań, podobnych do funkcjonalności "" w nginx. Dodatkowa trasa jest definiowana za pomocą dyrektywy "fallback", która jest wywoływana, jeśli żądany plik nie został znaleziony w ścieżce określonej przez dyrektywę "share". Na przykład, aby wywołać procesor PHP, gdy plik nie istnieje w katalogu /data/www/, można określić:
{
"share": "/data/www/",
"fallback": {
"pass": "applications/php"
}
}Dozwolone jest stosowanie zagnieżdżonych bloków "fallback". Na przykład, jeśli plik nie znajduje się w /data/www/, można spróbować wydać go z /data/cache/, a jeśli nie ma go też tam, przekierować żądanie do innego backendu:
{
"share": "/data/www/","fallback": {
"share": "/data/cache/","fallback": {
"proxy": "http://127.0.0.1:9000"
}
}
} - W formacie JSON parametrów konfiguracyjnych zapewniono usunięcie komentarzy w stylu JavaScript ("//..." i "/* ... */") oraz oczyszczenie znaczników sekwencji bajtów (), co może być przydatne w przypadku ręcznej edycji parametrów w JSON.
- Zredukowane zużycie pamięci poprzez zrzucanie ciała bardzo dużych żądań na dysk.
Źródło: opennet.ru
