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

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

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

  • Реализован режим изоляции «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».
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии