The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 , opennews (?), 26-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


21. "Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 "  +19 +/
Сообщение от Valentin V. Bartenevemail (?), 26-Ноя-20, 16:57 
Unit гораздо сложнее устроен. Если кратко, то Unit это nginx + php-fpm (или любой другой запускатор приложений на любимом ЯП по вкусу) - только современные и без накладных расходов на протокол и сокеты между.

Вся обработка соединений, маршрутизация между приложениями, а также раздача статики, проксирование  - происходят в отдельном процессе, который называется "router". Этот процесс использует несколько асинхронных потоков, по одному на ядро процессора. Каждый поток имеет свой собственный epoll/kqueue и работает с соединениями.

По сути этот процесс воплощает собой современный nginx, как бы он выглядел, если бы проектировался сейчас, а не 18 лет назад.

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

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

Тут разумеется есть нюансы, как, например, GIL в Python/Ruby, а вот PHP похоже до сих пор не особо thread-safe, поэтому в нем большого смысла реализовывать это пока нет. Но мы посмотрим.

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

35. "Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 "  +1 +/
Сообщение от GentooBoy (ok), 27-Ноя-20, 12:49 
>Далее, если запрос нужно передать на обработку приложению, которое работает в отдельных процессах и изолировано от всего остального, то этот запрос с помощью быстрого IPC, построенного на блоках разделяемой памяти и безлоковых очередях - переправляется в свободный процесс с этим приложением.

Вот теперь стало понятно где треды.
Я так и не добрался до покрутить unit, но njs очень порадовал. Быстренько поработать и умереть прямо то что нужно.
Спасибо за продукт

Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 "  –1 +/
Сообщение от мяя (?), 28-Ноя-20, 13:20 
> По сути этот процесс воплощает собой современный nginx, как бы он выглядел, если бы проектировался сейчас, а не 18 лет назад.

Но Unit не заменяет nginx. Будут ли nginx переписывать или доводить unit до функционала nginx?

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

42. "Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 "  +/
Сообщение от Valentin V. Bartenevemail (?), 28-Ноя-20, 21:19 
> доводить unit до функционала nginx?

Этим и занимаемся постепенно.

Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск nginx 1.19.5 сервера приложений Unit 1.21.0 "  +/
Сообщение от мяя (?), 29-Ноя-20, 11:51 
Понял направление. Спасибо за ответ.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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