The OpenNET Project / Index page

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

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

01.09.2023 19:55

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

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

  • Добавлен экспериментальный модуль для выполнения на стороне сервера приложений, скомпилированных в универсальный промежуточный код WebAssembly, который может запускаться в любых ОС и при использовании JIT демонстрирует производительность, близкую к нативному коду.
  • В блоки "action" и "fallback" добавлена поддержка выражения "response_headers" для добавления, удаления или изменения HTTP-заголовков. В качестве параметра задаётся список в виде "имя_заголовка/значение". Если указанное имя заголовка совпадает с уже выставленным в ответе заголовком, то значение заголовка будет изменено, если заголовок отсутствует - то он будет добавлен, если в качестве значения указан "null" - заголовок будет удалён. Значения можно формировать через вызов JavaScript-функций (NJS) или указание фиксированных данных.
    
       {
           "action": {
               "pass": "applications/api",
               "response_headers": {
                   "X-Version": null,
                   "Upper-Case": "`${host.toUpperCase()}`"
               }   
           }
       }
    
  • Добавлены переменные, содержащие значения HTTP-заголовков ответов, которые можно использовать для изменения или создания других HTTP-заголовков.
    
     {
            "action": {
                "pass": "applications/calc",
                "response_headers": {
                    "Content-Type": "${response_header_content_type};charset=iso-8859-1"
                }
            }
        }
    
  • В утилиту командной строки unitc встроена возможность редактирования JSON-конфигурации NGINX Unit через обращение к API.
    
       unitc EDIT /config
    
  • Для приложений на языке Python, использующих ASGI (Asynchronous Server Gateway Interface), добавлена поддержка параметра lifespan_state.


  1. Главная ссылка к новости (https://unit.nginx.org/news/20...)
  2. OpenNews: Выпуск nginx 1.25.2
  3. OpenNews: Выпуск Angie 1.2.0, форка Nginx от группы бывших разработчиков
  4. OpenNews: Выпуск сервера приложений NGINX Unit 1.27.0
  5. OpenNews: Игорь Сысоев ушёл из компаний F5 Network и покинул проект NGINX
  6. OpenNews: Доступен предварительный вариант стандарта WebAssembly 2.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59699-nginx
Ключевые слова: nginx, unit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 21:36, 01/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  Добавлен экспериментальный модуль для выполнения на стороне сервера приложений, скомпилированных в универсальный промежуточный код WebAssembly, который может запускаться в любых ОС и при использовании JIT демонстрирует производительность, близкую к нативному коду.

    Они изобрели CGI?

     
     
  • 2.6, Аноним (6), 22:50, 01/09/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нет, они изобрели Tomcat для вон тех вышеперечисленных. Жаль, что в современном вебе это всё крайне устарело и нужно только для поддержки легаси.
     
     
  • 3.31, А (??), 21:34, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    go, php и nodejs крайне устарели в вебе?
     

  • 1.4, Аноним (4), 21:42, 01/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    попробовал nginx unit -- не зашло. Начнем с того, что в нем нет и половины возможностей обычного нгинкса.
     
     
  • 2.9, Аноним (9), 00:16, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Это не замена nginx. А замена бекенда, вроде uwsgi, php-fpm. Производительность в разы лучше
     
     
  • 3.12, Роман (??), 02:17, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Можете привести примеры и ссылки для php-fpm? Очень интересно про разы лучше
     
     
  • 4.16, Аноним (16), 06:46, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Шок контент https://habr.com/ru/articles/588785/
     
     
  • 5.20, Роман (??), 07:51, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Шок контент https://habr.com/ru/articles/588785/

    Спасибо

     
  • 3.28, Аноньимъ (ok), 20:31, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше SCGI?
     

  • 1.5, Аноним (5), 21:43, 01/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > демонстрирует производительность, близкую к нативному коду.

    Т.е. раза в 4 хуже, проверено.

     
  • 1.8, Аноним (8), 23:25, 01/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так до сих пор и не понял смысл этого NGINX Unit'а. Зачем он нужен? Что он делает?
     
     
  • 2.10, КусочеКолбасы (?), 00:17, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Позволяет запуск web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, WebAssembly и Java).

    Ваш КО.

     
  • 2.13, Аноним (13), 04:06, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    NGINX Unit - это такой сервер приложений Сервер приложений - это программа, кот... большой текст свёрнут, показать
     
     
  • 3.30, Аноним (30), 04:43, 05/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот на этот вопрос и я бы хотел получить ответ от самих разработчиков без всякой иронии. В чем сакральный смысл запихивать КЛИЕНТСКИЙ код на WebAssembly внутрь сервера, типа в стиле бинарный формат же есть, значит мы можем исполнять...

    Можно Rust в WebAssembly например перегнать (собственно в этом и была основная задумка). Примеры тут лежат: https://github.com/nginx/unit-wasm

     
  • 2.29, Аноним (29), 22:44, 03/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Помогает унифицировать запуск приложений на разных языках, жаль нету и близко всего функционала иначе можно было бы внедрить в панели хостинга.
     

  • 1.11, ivan_erohin (?), 01:08, 02/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > "response_headers" для добавления, удаления или изменения HTTP-заголовков.

    вот этого мне не хватало 2 года назад, чтобы выкинуть apache.

     
  • 1.17, Аноним (17), 07:18, 02/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > промежуточный код WebAssembly, который может запускаться
    > в любых ОС и при использовании JIT демонстрирует производительность,
    > близкую к нативному коду.

    А что мешает просто использовать нативный код сразу?

     
     
  • 2.18, Аноним (18), 07:24, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не ищите в этос смысл. просто все хотят вайти а работы для всех нету
     
  • 2.21, Аноним (21), 09:44, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не для тех, кто пишет код. Это для админов, которым нужно запустить и поддерживать работоспособность зоопарка из PHP, Python, Java, WabAssembly и другого кода, который работает у разработчика на localhost'e, а надо, чтобы работало на сервере. А разработчик:
    -- Я ниче переделывать не буду - жрите, что дают. И вообще, уйду я от вас...
    -- Не-не-не-не, мы все запустим, админ - иди развлекайся. А ты, может, реализуешь вон тот тикет.
    -- Да вы чё, у меня обед, да и пятница уже. Во вторник посмотрю...

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

     
     
  • 3.24, пох. (?), 11:26, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > У взрослых людей с большой кучей кода повсеместно используется Кубернатес

    который настолько волшебный, что превращает кучу кода в веб-сервер одним пыщь-пыщь.

    ой, нет, там опять внутри nginx, кто бы мог подумать и было ли ему чем.

     
  • 2.22, Aaa (?), 11:19, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А что мешает просто использовать нативный код сразу?

    Версионность

     
  • 2.23, Aaa (?), 11:21, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты попробуй используй от вин 95 системные библиотеки от операционки (не программы) в вин 2000 и что то пойдет туда же ошибка x0c000003 stop кондишен
     
     
  • 3.26, Аноним (-), 11:56, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты попробуй используй от вин 95 системные библиотеки от операционки
    > (не программы) в вин 2000 и что то пойдет туда же ошибка x0c000003 stop кондишен

    Собрать прогу от Win95, да и даже от Win2000 под вот именно вебассембли - еще очень сильно ухитриться надо, для начала.

    А можно пользоваться опенсорсом - и опенсорсными операционками - и не иметь дурацких проблем на ровном месте.

     
     
  • 4.27, kusb (?), 18:27, 02/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Есть исходники винды, её библиотек и программ. Ещё можно сделать эмулятор на js который сразу выполняет функции винды.

    Вообще интересно было бы скомпилировать IE6 таким образом, а потом запустить браузерный движок в браузере и открыть им эту самую страницу. Ведь некоторые сайты открываются в новых браузерах неправильно. Подключаем js файл c IE6 и всё работает.

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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