The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

30.05.2020 21:55

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


  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Выпуск nginx 1.19.0
  3. OpenNews: Выпуск njs 0.4.0. Rambler отправил ходатайство о прекращении уголовного дела против Nginx
  4. OpenNews: Релиз nginx 1.18.0
  5. OpenNews: Выпуск сервера приложений NGINX Unit 1.17.0
  6. OpenNews: Rambler заявил свои права на Nginx. В офисе Nginx проведена выемка документов
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53059-nginx
Ключевые слова: nginx, unit
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, zo0M (ok), 22:22, 30/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Это очень круто, успехов и развития проекту!
    p.s. Deno через Unit кто-то уже запускал?
     
     
  • 2.3, Нонон (?), 22:28, 30/05/2020 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Ты лучше спроси, кто-то тут вообще unit запускал?)
     
     
  • 3.4, zo0M (ok), 22:29, 30/05/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    а в чем проблема его запустить?
     
     
  • 4.6, burik666 (ok), 23:00, 30/05/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    а зачем?
     
     
  • 5.23, rshadow (ok), 10:44, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Соглашусь. Unit это как оху*нно крутой паровоз. Вроде бы и круто, но как то не в тему уже. Многие уже свернули в сторону докера. Там и изоляция, и смешивать в кучу ничего не надо и т.д. и т.п.
     
     
  • 6.25, RAM (?), 13:03, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а причем здесь докер?
     
     
  • 7.26, пох. (?), 13:35, 01/06/2020 Скрыто модератором
  • –5 +/
     
  • 7.43, zo0M (ok), 07:46, 13/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если задумаешься, то поймешь, что, Unit, своего рода альтернатива контейнеризации приложений.
     
  • 3.8, Вы забыли заполнить поле Name (?), 00:37, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Еще лучше спросить кто-то вообще на Deno что-то запускал и зачем
     
     
  • 4.34, Аноним (34), 19:29, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    За тем, чтобы ты спросил
     
  • 3.16, anonymous (??), 13:16, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я запускал.
     
     
  • 4.29, Mail (?), 15:38, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И как? Смог четыре раза без виагры?
     
  • 2.9, Аноним (9), 00:42, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    это форум икспертов локалхостов, тут такие штуки ни к чему
     
  • 2.13, Онаним (?), 10:06, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл?
     

  • 1.7, Ддд (?), 00:06, 31/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Шикарная штука
     
  • 1.10, Ilya Indigo (ok), 04:36, 31/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я не понял, оно конфигурируется только через curl?
    Просто написать конфиг не открывая сокет для управления нельзя?
     
     
  • 2.11, Влад (??), 09:02, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    можно в systemd прописать загрузку конфига после запуска
     
     
  • 3.12, Ilya Indigo (ok), 09:57, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > можно в systemd прописать загрузку конфига после запуска

    Благодарю.

     
     
  • 4.42, _ (??), 18:58, 05/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За что? Оно же запустит портянку с миллионом curl коллов и засунет твой конфиг в **** с особым цЫнизмом. А юле ты хотел - облака, всё черз жо^H Web-API, ко-ко-ко :-\
     
  • 2.15, Аноним (15), 11:45, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    2020 год на дворе ваши конфигурационные портянки не нужны.
     
     
  • 3.31, OpenEcho (?), 17:56, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > 2020 год на дворе ваши конфигурационные портянки не нужны.

    Правильно говорите, товарищ...

    Надо поднять хубернетс где нибудь на амазоне и инстанциировать ЭластикСёрч где и держать всю конфигурацию для ваших 100 юзеров.
    Главное побольше новых модных слов, чтоб крутануть тупого клиента, они это очень любят, не важно что "на самосвале в булочную", главное пыль в глаза

     
     
  • 4.41, Аноним (-), 19:01, 02/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что, на мороз выгнали?

    p.s. миша-вахтер снова словил психоз? на каком основании трешь? я задал корректный вопрос, в чем проблема? либо уже всю ветку удаляй - я отвечаю на очевидный троллинг троллингом

     

  • 1.19, JL2001 (ok), 22:14, 31/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > помимо непосредственно указанного каталога приложения, Unit также автоматически монтирует в изолированное дерево ФС все специфичные языковые зависимости

    контейнеризация заместо docker'а подъехала? можно разные версии зависимостей в соседних юнитах?

     
     
  • 2.20, A (?), 23:18, 31/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Докер-то из чего состоит? Это и есть те части.
     

  • 1.24, user (??), 12:53, 01/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Такое ощущение, что изначально хотели ламповый сервер приложений, но получается так, что в ходе разработки добавляется все больше изоляции, и оно потихоньку сворачивает в сторону недо-альтернативы docker'у. без контейнеров и куртизанок.

    В целом идея хорошая, аля tomcat но не только для Java. Правда опоздали с реализацией на *цать лет.

    Хочется пожелать проекту, чтобы они все-таки допилили до годного состояния, чтобы собрать аудиторию, которой не нужны всякие docker'ы, kuber'ы и вот это все. Лично знаю людей, которым такое надо. Отлично бы подошло для проектов где нет больших нагрузок.

     
     
  • 2.28, пох. (?), 13:40, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > аудиторию, которой не нужны всякие docker'ы, kuber'ы и вот это все

    этой аудитории тем более не нужен сервер, у которого даже нормального конфига нет.

    P.S. кстати, ломать такие сервачки наверное очень классно - добавил в интуитивно-приятном апи пару своих конфигов, никто не увидит и никогда не спалит.

     

  • 1.30, Mail (?), 15:48, 01/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    >> Go, JavaScript/Node.js и Java

    эти уже имеют все для построения многопоточных серверов без всяких обвязок в виде "сервера приложений"

    >> Python,  Perl, Ruby

    эти или мертвы или уйдут из веба. Да и не метнется никто с рельсов или джанги куда-то еще, будут медленно помирать с гордо поднятыми монструозными фреймфорками.


    >> PHP,

    единственный кандидат - но этим парням вообще все пофиг, в любом случае, как проект на PHP подрастает, его переписывают на однмо из "Go, JavaScript/Node.js и Java"

     
     
  • 2.32, Аноним (32), 17:57, 01/06/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Python
    > эти или мертвы или уйдут из веба

    эх, если бы

     
     
  • 3.40, Аноним (40), 12:24, 02/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тебя переживут
     
  • 2.38, PnD (??), 11:07, 02/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > эти уже имеют все для построения многопоточных серверов без всяких обвязок в виде "сервера приложений"

    Насколько я понимаю, тут заход в сторону CI. С которым e.g. у Tomcat — так себе (просто потому что в 90-е такое ещё в голову не заходило).
    Сочетание известного на нашей (nginx) и той "стороне лужи" (F5) брендов даёт неслабый шанс это продавать.
    Какие нужны фичи, чтобы распихать локтями jetty с tomcat на пару — надеюсь, создателям виднее.

    * Традиционный нюанс — эпическая возможность отсыпать тривиальных бэкдоров "из коробки". Для прикрытия которых в портфеле F5 (ну а кого же ещё?) есть целая пачка фи́говых листков.
    Не, ну серьёзно. Sendmail похоронен, к php "в целом" притерпелись. Даже винду более-менее огородили. Надо же как-то бизнес дальше двигать.

     
  • 2.39, Moomintroll (ok), 11:27, 02/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да и не метнется никто с рельсов или джанги куда-то еще...

    Вообще-то, эта штука нужна как раз для запуска рельсов. Тот сервер приложений, что идёт в комплекте (webrick) не годится для продакшена, потому народ использует Unicorn, Mongrel, Passenger и этот самый Unit.

    P.S. Как раз для рельсов использую - запускаю Redmine.

    P.P.S. https://stackoverflow.com/questions/4113299/ruby-on-rails-server-options

     

  • 1.35, Аноним (35), 19:40, 01/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Реализован режим изоляции "rootfs" для ограничения доступа приложения только к определённой части файловой системы. Для смены видимого для приложения корня ФС применяется вызов pivot_root(), который в отличие от небезопасного системного вызова chroot() не просто смещает корень ФС, а использует изоляцию на уровне пространства имён, аналогичную той, что используется в контейнерах.

    бред. pivot_root с clone_MNT - никак не связан, но то что безопаснее chroot - факт.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру