1.1, Аноним (1), 10:03, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –7 +/– |
Это старый добрый проверенный nginx с расширениями или новый продукт под раскрученным брендом?
Надо щюпать кенешн. Вдруг херак херак и в продакшен
| |
|
2.9, Valentin V. Bartenev (?), 15:22, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Это попытка авторами переосмыслить архитектуру nginx, заложенную в 2002-ом году с учетом 15+ лет опыта и современных реалий. Но не повторять при этом ошибок Apache2, Python3, KDE4 и подобных. А с самого начала зайти сперва с другого угла и не принуждать пользователей мигрировать с одного на другое, параллельно развивая оба продукта.
| |
|
3.14, Аноним (14), 15:43, 23/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
А ничего, что эти продукты предназначены для совершенно разных задач? Unit это сервер приложений, а не реверс-прокси.
| |
|
4.17, KonstantinB (ok), 15:48, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Но nginx в паре с каким-нибудь php-fpm или uWSGI и используются как application server.
| |
4.20, Valentin V. Bartenev (?), 16:08, 23/08/2019 [^] [^^] [^^^] [ответить]
| +5 +/– |
Начальная поддержка раздачи статики и проксирования сейчас в разработке. В следующем релизе осенью уже можно ожидать в примитивном виде с дальнейшим развитием.
У нас нет установки на то, что юнит исключительно сервер приложений. Его архитектура закладывалась с учетом возможности эффективно отдавать статику и проксировать.
| |
|
5.23, Мертвые_опята (?), 16:45, 23/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Начальная поддержка раздачи статики и проксирования сейчас в разработке.
А вот это уже очень интересно! Спасибо за новость.
Внимательно слежу за развитием Nginx Unit, но пока не видел особого смысла в его применении на задачах у меня или моих клиентов. Будем ждать.
| |
|
|
3.15, KonstantinB (ok), 15:44, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Валентин, а насколько верна моя догадка, что столь удачная архитектура, основанная на shared memory, родилась из костылей вокруг того факта, что когда-то в 2003-м году Сысоев вопреки своему плану действий вместо тредов сделал воркеры, чтобы по-быстрому решить проблему с раздачей статики на рамблер-фотках? :-)
| |
|
4.21, Valentin V. Bartenev (?), 16:20, 23/08/2019 [^] [^^] [^^^] [ответить]
| +4 +/– |
Исходя из этого Игорь с самого начала заложил обработку слущающих сокетов на асинхронных тредах. Там, где у nginx отдельный воркер, у нас просто тред в процессе роутера. С разделяемой между отдельными процессами воркеров памятью в nginx сполна намучались.
В юните разделяемая память используется иначе. Она служит исключительно в качестве трубы для передачи данных, а не для хранения состояния. Это избавляет от большинства проблем. Я предложил такую архитектуру с целью устранения накладных расходов на общение с приложениями, когда речь зашла о том, как с ними работать правильно, не теряя асинхронности и изоляции.
| |
|
5.26, KonstantinB (ok), 18:54, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
А, понятно. Спасибо, интересно.
У меня просто было ничем не обоснованное подозрение, что принцип работы Unit-а изначально придуман для nginx plus :-)
| |
5.27, KonstantinB (ok), 18:58, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
С разделяемой памятью - да уж. Мы как-то давно делали свой in house модуль для хитрого кастомного стриминга, я, правда, в основном со стороны наблюдал, но мата было много :-)
| |
5.47, An (??), 14:31, 27/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
А почему в качестве трубы используется разделяемая память? Почему не хватает пары сокетов?
| |
|
|
|
2.29, Hewlett Packard (?), 22:47, 23/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Старый добрый проверенный nginx с расширениями, нацеленный на использование в качестве сервера приложений, называется OpenResty, и оказался слишком сложен в приготовлении для широких масс интернетостроительной отрасли.
| |
|
3.37, Аноним (37), 05:06, 24/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вы тут под аппсервером имеете в виду луа-скриптинг? У этого очень узкое применение. Луа мало подходит для больших проектов.
| |
|
4.41, Hewlett Packard (?), 03:24, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Для БОЛЬШИХ проектов вообще ничего не подходит кроме J2EE и Большого Индийского Аутсорса. Но таких проектов в мире не очень много.
| |
|
|
|
1.3, Аноним (3), 10:19, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> корректно обрабатывать запросы вида "/app.php/some/path?some=args";
уп-с, оно и этого даже не умело? Верной дорогой идут. Товарищи.
| |
|
2.18, KonstantinB (ok), 15:53, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ну, вообще, fastcgi_split_path_info это не так уж и часто нужная вещь. В основном в легаси коде встречается.
| |
|
3.24, OpenEcho (?), 18:06, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>В основном в легаси коде встречается.
А можно глянуть на ссылочки, говорящиее что PATH_INFO стал legacy?
| |
|
4.28, KonstantinB (ok), 21:42, 23/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
legacy в смысле связки с PHP.
Конструкция вида script.php/foo/bar изначально работала только в apache1 mod_php, и никогда не задумывалась как фича, это был просто побочный эффект реализации.
Сделать из этого PATH_INFO придумали уже потом :-)
| |
|
|
2.19, Аноним (19), 16:00, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Имея опыт разработки на php в 2004-2008 годах, я верил, что уж в 2019 этот архаичный способ не нужен и все просто перенаправляют все запросы на index.php, что Unit умел с первых бета-версий.
| |
|
1.5, Анон Багоев (?), 10:36, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Код на js у них в unit довольно скверно написан. Никак руки до pr не дойдут. Не исключаю наличие там багов.
| |
|
2.10, НяшМяш (ok), 15:29, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Кстати, а в каком именно месте код скверный? Я глянул - ну да, в 2019 году писать на прототипах, юзать bind вместо современных классов и стрелочных функций немного странно (хотя может там совместимость декларируется до версий ноды 0.12), но в остальном ничего критичного я не заметил.
| |
|
3.12, KonstantinB (ok), 15:37, 23/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
А что не так в написании кода на прототипах?
Классы в JS - это просто синтаксический сахар над прототипами, для частного случая.
Вот сейчас работаю над старым проектом, где все так, и не испытываю абсолютно никаких проблем с этим. Зато работает без транспайлеров в любом недобраузере типа IE.
| |
|
4.35, Додо (?), 00:56, 24/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Классы читаются гораздо проще, чем прототипы, и возможно, имеют некие внутренние оптимизации в движке.
В данном случае никаких "транспайлеров" не требуется - пакет работает на Node.js, где уже давно имеется поддержка классов.
| |
|
5.40, KonstantinB (ok), 19:17, 24/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Читаются чуточку проще, согласен. В новом коде так и делаю. Но переписывать легаси смысла не вижу.
| |
|
|
|
2.11, Аноним (11), 15:36, 23/08/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
Тоже глянул - используются какие-то нативные функции по работе со строками вместо npm leftpad.
| |
|
1.39, anonymous (??), 10:36, 24/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот мне нравилась концепция NGINX Unix, но когда пробовал его применять для Go-приложений получалось одно разочарование :(
- Проблемы с адаптацией (например, если используешь fasthttp в качестве сервера).
- Производительность снижалась.
- Начинало подвисать. Приходилось либо долго ждать ответа на запрос, либо перепосылать его.
Видимо сыроват ещё был. Надо будет в этом году снова попробовать...
| |
|
|
3.46, Аноним (43), 07:00, 27/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Та хрен с тем ondemand. Из-за отсутствия поддержки unix socket, невозможно его заюзать в хай лод проекте. TCP сокеты и так очень забиты другой нагрузкой.
| |
|
|
|