The OpenNET Project / Index page

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



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

"Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от opennews (??), 22-Ноя-21, 19:42 
Состоялся выпуск сервера приложений NGINX Unit 1.26.0, в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе первого выпуска...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56209

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

Оглавление

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


3. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (3), 22-Ноя-21, 19:50 
> /www/$host$uri

А как там с санитизацией?
Nginx, помнится, этим очень славен https://blog.detectify.com/2020/11/10/common-nginx-misconfig.../

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

4. "Выпуск сервера приложений NGINX Unit 1.26.0"  –2 +/
Сообщение от Анонимemail (4), 22-Ноя-21, 23:30 
Это что то типа mod proxy в apache?
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от AntonAlekseevichemail (ok), 22-Ноя-21, 23:35 
> "share": "/www/data/$uri"

Мда... (Условно) Добро пожаловать в мир прочтенного "/www/data/../../etc/passwd" если будет жить как говорится установленным в localhost и запущенным от имеющего право на чтение данного файла в том числе через мандатный контроль доступа.

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

7. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (7), 23-Ноя-21, 00:45 
Добро пожаловать в документацию, чтобы осознать, что $uri содержит нормализованное значение URI, ровно такое же, какое используется всеми веб-серверами, включая nginx, для открытия файлов из document root и предотвращения выхода из него.
Ответить | Правка | Наверх | Cообщить модератору

12. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (3), 23-Ноя-21, 09:21 
Остается только надеяться, что разработчики не накосячили с этим, как в Nginx, где вроде бы очевидный конфиг
location /aaa { proxy_pass http://bbb/ccc/; } позволяет, передав URL /aaa../ddd, обратиться к http://bbb/ddd
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (7), 23-Ноя-21, 13:57 
Если почтитать доку nginx, то станет понятно, что в данном конфиге часть URL запроса "/aaa" (без слеша), будет заменена на "/ccc/" (со слешом) - такая форма рерайта.  Собственно, что пользователь в конфиге написал - ровно то и получил.  При такой замене из "/aaa../ddd" получается "/ccc/../ddd" - что с этим будет происходить дальше зависит исключительно от бекенда.

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

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

18. "Выпуск сервера приложений NGINX Unit 1.26.0"  +1 +/
Сообщение от Аноним (3), 23-Ноя-21, 15:42 
> При такой замене из "/aaa../ddd" получается "/ccc/../ddd" - что с этим будет происходить дальше зависит исключительно от бекенда.
> Вина nginx тут лишь в том, что пользователи не читают документацию и невнимательны.

Вы, кстати, не исключение :)
Nginx нормализует URL перед передачей в бэкенд, так что туда отправится уже /ddd.

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

По этой причине лучше использовать альтернативы, у которых механизм конфигурации не является минным полем.

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

21. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (7), 23-Ноя-21, 19:25 
> Nginx нормализует URL перед передачей в бэкенд, так что туда отправится уже /ddd.

Он нормализует его не перед отправкой на бекенд, а перед реврайтом, перед заменой части из location.  А результат замены уже отправится на бекенд, т.е. на бекенд уйдет запрос к "/ccc/../ddd".  Попробуйте сами, если не верите (только убедитесь, что сам бекенд не нормализует пришедший к нему URL).


events {}

http {
    server {
        listen 8000;

        location /aaa {
            proxy_pass http://127.0.0.1:8001/bbb/;
        }
    }

    server {
        listen 8001;

        location / {
            return 200 "$request_uri";
        }
    }
}


$ curl 127.0.0.1:8000/aaa../
/bbb/../                                                                                                                                                                              

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

22. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (7), 23-Ноя-21, 19:52 
> По этой причине лучше использовать альтернативы, у которых механизм конфигурации не является минным полем.

Ну так в каком альтернативном сервере вы бы ни написали команду: "в URL вместо букв /aaa подставь буквы /bbb/" - результат такой замены будет одинаковый.  А ровно такая команда в конфиграции nginx и написана.

Можно ещё с тем же успехом команду sed ругать:


$ echo '/aaa../ddd' | sed 's+/aaa+/ccc/+'
/ccc/../ddd

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

8. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от lockywolf (ok), 23-Ноя-21, 04:22 
Зачем такие страдания? Есть же identd.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

6. "Выпуск сервера приложений NGINX Unit 1.26.0"  +1 +/
Сообщение от 1 (??), 23-Ноя-21, 00:33 
Каких ещё приложений? Свалите со своими калькуляторами!
Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Анонимemail (4), 23-Ноя-21, 07:59 
Это что то типа mod proxy в apache?
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск сервера приложений NGINX Unit 1.26.0"  +4 +/
Сообщение от Аноним (10), 23-Ноя-21, 08:40 
Блин, да когда уже на конец-то сделают возможность переопределения переменных окружения SERVER_NAME, SERVER_PORT и HTTPS?! Без этого приходится при каждом апдейте исходники править. Ибо ни laravel ни wordpress не работают на unit-е если трафик проксируется nginx-ом с https в http.

Разработчики какую-то хрень непонятную пилят при этом самое базовое никак не могут реализовать... Печаль...

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

11. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (10), 23-Ноя-21, 08:45 
Вот тикет на эту тему: https://github.com/nginx/unit/issues/231
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Роман (??), 23-Ноя-21, 11:10 
поделитесь опытом, что стало значимым фактором чтобы выбрать Nginx Unit?

мне позиционирование продукта понятно не до конца, юзкейсов для себя не вижу. Предполагаю что
> The entire configuration is managed dynamically over HTTP via a friendly RESTful JSON API

кому-то обмазанному кубернейтисом нужно и может в даже мне, но (пока?) этот момент без разницы

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

14. "Выпуск сервера приложений NGINX Unit 1.26.0"  +5 +/
Сообщение от Аноним (10), 23-Ноя-21, 13:41 
>поделитесь опытом, что стало значимым фактором чтобы выбрать Nginx Unit?

1. его скорость работы: под высокой нагрузкой с php-fpm не сравнить, в некоторых случаях разница в скорости генерации страницы в 2-5 раз быстрее. На хайлод проекте (сайт одной из популярных СМИ) это важный фактор.
2. поддержка множества языков: раньше нужно было настраивать апликейшин сервер для каждого языка свой. Частично проблема решалась при помощи uWSGI, но там тоже есть свои заморочки и проблемы. Unit стал отличной альтернативой uWSGI, к тому же чуток быстрее.
3. все таки конфигурация через апи куда удобнее если менеджить большой кластер. Раньше приходилось костылять скрипты для редактирования конфигов uWSGI и ходить по ssh на все серваки меняя их sed-ом.
4. роуты приложения: хоть и у uWSGI есть и подобный функционал, но работает он медленее + не очень удобно конфигурять на серваках централизовано.

Это первое что пришло в голову. Если подумать, можно вспомнить еще пару пунктов.

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

16. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Роман (??), 23-Ноя-21, 14:00 
> 1. его скорость работы: под высокой нагрузкой с php-fpm не сравнить, в некоторых случаях разница в скорости генерации страницы в 2-5 раз быстрее.

Самый странный для меня пункт, но окей, тут можно самому протестировать и понять.

> 3. все таки конфигурация через апи куда удобнее если менеджить большой кластер. Раньше приходилось костылять скрипты для редактирования конфигов uWSGI и ходить по ssh на все серваки меняя их sed-ом.

Самый спорный для меня пункт, но возможно кому-то так действительно проще

Про остальное понятно (для меня актуально, так как не проблема менеджить nginx locations на разные бэкенды), спасибо.

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

17. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Роман (??), 23-Ноя-21, 14:02 
"для НЕ меня актуально"
Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (3), 23-Ноя-21, 19:07 
> роуты приложения: хоть и у uWSGI есть и подобный функционал, но работает он медленее + не очень удобно конфигурять на серваках централизовано.

Речь идет об этом https://unit.nginx.org/configuration/#routes ?

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

24. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Аноним (10), 24-Ноя-21, 12:50 
>Речь идет об этом https://unit.nginx.org/configuration/#routes ?

Да, они самые.

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

19. "Выпуск сервера приложений NGINX Unit 1.26.0"  –2 +/
Сообщение от ddd2 (?), 23-Ноя-21, 18:16 
Там хоть один российский разработчик еще остался?
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск сервера приложений NGINX Unit 1.26.0"  +/
Сообщение от Гоголь (?), 23-Ноя-21, 23:08 
А какое отношение это имеет к "продукту"?
Главный там русский, но, опять же, что это может значить?
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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