Выпуск сервера приложений 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».

Источник: opennet.ru

Добавить комментарий