Состоялся (https://mailman.nginx.org/pipermail/unit/2019-May/000152.html) выпуск сервера приложений NGINX Unit 1.9 (http://unit.nginx.org/), в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется (https://github.com/nginx/unit) под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе (https://www.opennet.me/opennews/art.shtml?num=48434) первого выпуска.
В новой версии:- Возможность (https://unit.nginx.org/configuration/#condition-matching) маршрутизации запросов по аргументам URI, заголовкам и Cookie;
"headers": [
{
"Accept-Encoding": "*gzip*",
"User-Agent": "Mozilla/5.0*"
},
{
"User-Agent": "curl*"
}
]- В шаблонах сопоставления маршрутов реализована поддержка масок в середине выражения. Например,
"host": ["eu-*.example.com", "!eu-5.example.com"]
- Поддержка (https://unit.nginx.org/configuration/#examples) операций, отправляемых с использованием метода POST, для манипуляции содержимым массивов в конфигурации (изменения передаются в формате JSON);curl -X POST -d '{"match": {"uri": "/production/*"}, \
"action": {"pass": "applications/wiki-prod"}}' \
--unix-socket=/path/to/control.unit.sock \
http://localhost/config/routes/
- Поддержка смены пользователя и группы при помощи capabilities CAP_SETUID и CAP_SETGID в Linux без выполнения основного процесса под привилегированным пользователем.
URL: https://mailman.nginx.org/pipermail/unit/2019-May/000152.html
Новость: https://www.opennet.me/opennews/art.shtml?num=50778
Какая разница между "запуском Web-приложения на языке PHP" и обычным хостингом PHP скриптов?
Видимо, «приложение» работает постоянно, а скрипты запускаются по запросу.
такая же, как "между запуском обычного приложения пользователем" и "`хостингом` несвязанных исполняемых файлов в его хомяке/bin"чего на самом деле спросить-то хотел?
Годно, надеюсь в скором времени вытеснит fpm и все связанные с ним проблемы.
Какие у fpm проблемы? Работает и работает.
Кто-нибудь мне обьяснит чем ЭТО лучше fpm?
По-видимому, "гибкостью" - авторы предполагают, что пользователь пишет одновременно на нескольких языках и любит в одном проекте смешивать разнородный код.
Самое хорошее что осталось от Апача так это видимо лицензия
> Самое хорошее что осталось от Апача так это видимо лицензияДа, ритуальные услуги хороши.
Объясните, пожалуйста, некоторые моменты.
1 NGINX Unit он работает сам по себе не зависимо от NGINX, или ему нужен NGINX для работы?
2 В связке с PHP будут ли читаться .user.ini - файлы?
по поводу первого вопроса - в анонсе первой стабильной версии написали:> NGINX Unit обслуживает отдачу динамического контента самостоятельно, но также способен работать в тандеме с http-сервером nginx, который может выступать в роли балансировщика, кэша или сервера для отдачи статического контента.
Про второй - сорри, ничего сказать не могу.
>> NGINX Unit обслуживает отдачу динамического контента самостоятельно, но также способен работать в тандеме с http-сервером nginx, который может выступать в роли балансировщика, кэша или сервера для отдачи статического контента.Я это читал, но не понял.
В моём понимании, нет чисто динамического контента, он всегда у меня смешанный (если периодически отключать режим PHP и выводить чистый HTML) или статический!1 Если я в PHP-файле не включаю режим PHP, или включаю для того, чтобы подключить внешний HTML-файл кэша и отключаю его, это считается статическим или динамическим контентом?
2
> способен работать в тандеме с http-сервером nginxApache тоже СПОСОБЕН, но может справляется и без него.
NGINX Unit может БЕЗ NGINX обрабатывать и статику и динамику?
А если может, то зачем ему может понадобиться тандем с NGINX?
> А если может, то зачем ему может понадобиться тандем с NGINX?Ну как пример балансировщик же указан - наверное можешь построить схему с одним NGINX-балансировщиком за которым лежит 20 NGINX Unit, которые забиты работой по гланды, разгребая скриптами миллионы запросов на обработку, которые им этот балансировщик скидывает по round-robin?
>скидывает по round-robinНе камильфо, если только калтент кругом не статичный.
Камильфо должно быть session-aware.
Если приложение изначально спроектировано с учётом кластеризации, никакой session aware не понадобится.
Сам по себе Unit не раздает статику. Если очень хочется обойтись без nginx, можно написать раздавалку статики на любом из поддерживаемых Unit языков (на go с какой-нибудь sendfile-библиотекой это будет всего несколько строк кода, если опустить вопросы безопасности) и настроить маршрутизацию.
Благодарю!
NGINX Unit работает как сервер приложения.
"NGINX Unit может БЕЗ NGINX обрабатывать и статику и динамику?"
пока не может, но в планах у разработчиков есть идея реализовать и этот функционал
Благодарю!
Чем это от обычного апача отличается? Типа модно&молодежно и все?
Вопрос разработчикам NGINX Unit или к ним предчастным:Вот тут https://www.nginx.com/blog/installing-wordpress-with-nginx-unit/ в комментах сказано:
Currently NGINX Unit does not support SSL/TLS at the application layer. This is a roadmap item and will be added soon however NGINX Plus can be used to offload your SSL/TLS connections and proxy over standard HTTP to your application.
Без этой фичи невозможно запустить любой бложик на вордпрессе по HTTPS чтоб хоть как-то протестить работу NGINX Unit в боевых или приблеженных к нему условиях. С момента написания статьи https://www.nginx.com/blog/nginx-unit-1-0-released/ уже вышло куча версий NGINX Unit в которых вы добавляете языки и прочие вещи тем временем не добавляете важный функционал, что делает невозможным его даже протестировать.
Когда эта штука будет реализована?
Уже.
https://www.nginx.com/blog/nginx-unit-1-5-available-now/
>Уже.Так это вроль не то. Последний раз когда я его пробовал завести по HTTPS в связке с nginx, при открытии сайта по HTTPS вордпресс уходит в циклческую переадресацию из-за того, что вордпресс не понимал что он работает по HTTPS и выдавал 301 редирект. Когда я начал копать почему так, оказалось что апликейшин сервер должен понимать что к нему пришел запрос по HTTPS и соотвествующим образом сообщать это вордпрессу. Все другие апликейшин серверы (php-fpm, uwsgi, etc...) это понимают и сообщают как нужно. Если же пытаться запустить на NGINX Unix вордпресс, друпал или магенту, то придется делать грязные хаки в коде или в лучше случае правки в конфиге, чтоб движки нормально понимали как их пытаются запустить.
Я не причастен к разработчикам NGINX Unit, но я пробовал его применять и с данной проблемой даже не столкнулся. Всё потому, что спереди балансировщиком всё равно стоит Nginx, который умеет SSL/TLS.
web интерфейс таки уже написали или руками опять всё дёргать?
курлом все дергать, и нету Host и SNI
Если вам нужен веб интерфейс, вам, вероятно, не нужен unit.
Эта фича будет в версии плюс
Если вам нужен Web/GUI то не тратьте время и юзайте IIS
LiteSpeed Web Server
Cherokee HTTP Server
имеют вебинтерфес для настройки
Видимо я уже стар и мозг мой недостаточно гибок. С fpm я вроде еще что-то понимаю. А вот какие преимущества дает например запуск go приложений под unit перед запуском их напрямую?