Выпуск сервера приложений NGINX Unit 1.16.0
Состоялся выпуск сервера приложений NGINX Unit 1.16, в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе первого выпуска.
В новой версии:
- Добавлена поддержка балансировки нагрузки в режиме round-robin. Например, для распределения нагрузки на два сервера 192.168.0.100 и 192.168.0.101 с направлением на второй в два раза больше запросов можно использовать следующую конструкцию:
"upstreams": { "rr-lb": { "servers": { "192.168.0.100:8080": { }, "192.168.0.101:8080": { "weight": 2 } } } }
- Реализована возможность задания гибких правил маршрутизации запросов, похожих на функциональность «try_files» в nginx. Дополнительный маршрут задаётся при помощи директивы «fallback», которая срабатывает, если запрошенный файл не найден в пути, определённом через директиву «share». Например, для того чтобы вызвать обработчик на PHP в случае отсутствия файла в каталоге /data/www/ можно указать:
{ "share": "/data/www/", "fallback": { "pass": "applications/php" } }
Допускается использование вложенных блоков «fallback». Например, если файла нет в /data/www/, можно попытаться выдать его из /data/cache/, а если нет и там, перенаправить запрос на другой бэкенд:
{ "share": "/data/www/", "fallback": { "share": "/data/cache/", "fallback": { "proxy": "http://127.0.0.1:9000" } } }
- В загружаемых в формате JSON параметрах конфигурации обеспечено удаление комментариев в стиле JavaScript (»//…» и »/* … */») и чистка маркеров последовательности байтов (UTF-8 BOM), что может быть полезно в случае ручного редактирования параметров в JSON.
- Снижено потребление памяти за счёт сбрасывания тела очень больших запросов на диск.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52536
© OpenNet