Выпуск сервера приложений NGINX Unit 1.18.0

Состоялся выпуск сервера приложений NGINX Unit 1.18, в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе первого выпуска.

В новой версии:

  • Реализован режим изоляции «rootfs» для ограничения доступа приложения только к определённой части файловой системы. Для смены видимого для приложения корня ФС применяется вызов pivot_root(), который в отличие от небезопасного системного вызова chroot() не просто смещает корень ФС, а использует изоляцию на уровне пространства имён, аналогичную той, что используется в контейнерах. Более того, помимо непосредственно указанного каталога приложения, Unit также автоматически монтирует в изолированное дерево ФС все специфичные языковые зависимости (работает только для ограниченного числа языков).
         {         "type": "python 2.7",         "path": "/",         "home": "/venv/",         "module": "wsgi",         "isolation": {             "rootfs": "/var/app/sandbox/"         }     }  
  • Возможность указания в конфигурации нескольких схем вызова обработчиков при помощи новой секции «targets«. Указанная возможность позволяет упростить настройку смешанных схем адресации, когда, например, большая часть запросов обрабатывается через index.php независимо от запрошенного URI, а интерфейс администратора напрямую приводят к вызову скриптов. Ранее подобные настройки производились через определения двух приложений, а теперь можно обойтись одним. Например, вместо:
       {        "wp_index": {            "type": "php",            "user": "wp_user",            "group": "wp_user",            "root": "/path/to/wordpress/",            "script": "index.php"        },          "wp_direct": {            "type": "php",            "user": "wp_user",            "group": "wp_user",            "root": "/path/to/wordpress/"        }    }    

    можно указать

        {        "wp": {            "type": "php",            "user": "wp_user",            "group": "wp_user",              "targets": {                "index": {                    "root": "/path/to/wordpress/",                    "script": "index.php"                },                  "direct": {                    "root": "/path/to/wordpress/"                }            }        }    }    
  • Добавлена поддержка кодирования символов в форме «%xx» в опциях сопоставления «uri» и «arguments», а также в опции «pass».

Источник: http://www.opennet.ru/opennews/art.shtml?num=53059