The OpenNET Project / Index page

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



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

"Новые версии nginx 1.25.5 и форка FreeNginx 1.26.0 "  +/
Сообщение от opennews (??), 16-Апр-24, 22:54 
Сформирован выпуск основной ветки nginx 1.25.5, в рамках которой продолжается развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.24.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В дальнейшем на базе основной ветки 1.25.x будет сформирована стабильная ветка 1.26. Код проекта написан на языке Си и распространяется под лицензией BSD...

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

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

Оглавление

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

3. Сообщение от Аноним (-), 16-Апр-24, 23:41   +/
> Выпуск 1.26.0 отмечен как стабильный релиз, вобравший в себя изменения
> и исправления из выпусков mainline-ветки Nginx 1.25

Т.е. git pull origin, как и предполагалось.
А сколько пафоса было...

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

4. Сообщение от Аноним (4), 16-Апр-24, 23:47   +5 +/
Ждём LibreNginx под GPLv3.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7

5. Сообщение от Аноним (5), 17-Апр-24, 00:07   +1 +/
Паллиативная поддержка «более быстрого Апача» для легасных систем скукожилась до минорщины. А вся драма дунинского форка оказалась фарсом, в конце которого дунин просто нажал «Fetch and merge» на гитхабе.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #23

7. Сообщение от Аноним (7), 17-Апр-24, 00:08   +3 +/
А что OpenNginx уже есть? А то может подсуетиться. Пакеты пересобирать я тоже могу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #14, #20, #22, #24, #30

8. Сообщение от Аноним (-), 17-Апр-24, 00:09   +1 +/
Дунин-Кулаков короче.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

10. Сообщение от Аноним (10), 17-Апр-24, 00:59   +2 +/
Извините, что не в курсе этих "корпоративных дрязг", но что и как мешает людям юзать оригинальный нгынкс? Я вот скачал бинарь для оффтопика - всё работает, денег не просит. Чё не так?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #27

11. Сообщение от Аноним (11), 17-Апр-24, 01:31    Скрыто ботом-модератором+3 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

14. Сообщение от аннаним (?), 17-Апр-24, 03:18   +2 +/
Забронирую NetNginx
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

18. Сообщение от вася (??), 17-Апр-24, 06:17   +/
>>Выпуск 1.26.0 отмечен как стабильный релиз

И сразу же
>>в состав FreeNginx 1.26.0 вошли экспериментальная поддержка

Проводим эксперименты и называем это стабильным релизом, ну нормально.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #50

20. Сообщение от User (??), 17-Апр-24, 06:57   +1 +/
Они вроде свой httpd из relayd скрафтили, если мне память не изменяет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

22. Сообщение от Аноним (22), 17-Апр-24, 08:26   +3 +/
А твой open он как открытое пиво или как открытая дверь? Надо уточнить по философии гну https://www.gnu.org/philosophy/free-sw.en.html
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

23. Сообщение от Аноним (22), 17-Апр-24, 08:29   +/
Всё уже давно сидят на нормальных вебсерверах. В которых искоропки есть хелсчек для балансировщика, а не как в бесплатной версии нжинкса, где его нет.    
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #38, #45

24. Сообщение от Аноним (24), 17-Апр-24, 09:17   +/
Не вздумайте занять FUNginx
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #31

25. Сообщение от Ilya Indigo (ok), 17-Апр-24, 09:41   +/
У вас не возникало необходимости из nginx обратиться к redis?

У меня появилось необходимость это сделать, что бы прочитать сессионный ключ пользователя из кук, затем обратится к redis, он обрабатывает php-сессии, чтобы получить id пользователя из сессии по этому ключу, если он есть, а затем сравнить его с id из URL и решить можно ли отдавать пользователю это изображение или вернуть 403.

Я собрал модули
http-redis https://build.opensuse.org/package/show/home:13ilya/nginx-mo...
и
redis2 https://build.opensuse.org/package/show/home:13ilya/nginx-mo...,
но они, к сожалению, оказались бесполезными для этой задачи.
http-redis используется только для кеширования и может только получить по ключу данные и целиком их отправить в stdout,
а redis2 может только сохранять, так как при получение каких-либо данных он эти данные вместе с отладочной информацией, аналогичной при работе с redis-cli сразу отправляет в stdout и их не возможно сохранить в переменную и обработать для принятия дальнейшего решения.

Я так понял, единственный выход это сделать через OpenResty или модуль lua.
OpenResty, почему-то не собирает ни один дистрибутив, не смотря на совместимую с GPL лицензию, и предлагается подключать сторонние репозитории, в которых даже nginx поставлается свой. Этот вариант мне не очень нравится, но даже так там нет репозитория для OpenSUSE Tumbleweed, только для openSUSE Leap.

Попробовал для начала собрать lua модуль сам https://build.opensuse.org/package/show/home:13ilya/nginx-mo...
и запнулся над тем, что ему нужен luajit с поддержкой FFI

checking for Lua language 5.1 ... found
checking for LuaJIT has FFI ... not found
./configure: error: unsupported LuaJIT build; ngx_http_lua_module requires LuaJIT with FFI enabled.

При этом в апстиме сказано что поддержка FFI включена по умолчанию,
https://luajit.org/ext_ffi_tutorial.html
и в downstream я не нашёл её отключения.
https://build.opensuse.org/package/show/devel:languages:lua/...

На этом пока и запнулся. :-(
Может у вас есть опыт со сборкой  OpenResty или тем как решить подобную задачу обращения nginx к redis?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26, #28, #40, #46

26. Сообщение от 1 (??), 17-Апр-24, 10:05   +1 +/
Хм ... вроде Lua нормально к nginx подключается - всё по мануалу.

===================== ну типа заметки, надо бы функцию на opennet скрывать под котом :-) ==================
Lua

Alternatively, ngx_lua can be manually compiled into Nginx:

    LuaJIT can be downloaded from the latest release of OpenResty's LuaJIT fork. The official LuaJIT 2.x releases are also supported, although performance will be significantly lower for reasons elaborated above

$ git clone https://github.com/openresty/luajit2
$ cd luajit2
$ make
$ sudo make install

(Возможно будет работать с стандартным libluajit-5.1-dev после apt-get install libluajit-5.1-dev.)

    Download the latest version of the ngx_devel_kit (NDK) module HERE (git clone https://github.com/vision5/ngx_devel_kit)
    Download the latest version of ngx_lua HERE (git clone https://github.com/openresty/lua-nginx-module)
    Download the latest supported version of Nginx HERE (See Nginx Compatibility) nginx-1.19.9.tar.gz

Распаковываем в modules Указываем - куда установлен luajit (в нашем случае /usr/local)

export LUAJIT_LIB=/path/to/luajit/lib
export LUAJIT_INC=/path/to/luajit/include/luajit-2.1

Добавляем в configure -

--add-module=modules/ngx_devel_kit \
--add-module=modules/lua-nginx-module \
--add-module=modules/ModSecurity-nginx

или

--add-dynamic-module=modules/ngx_devel_kit \
--add-dynamic-module=modules/lua-nginx-module \
--add-dynamic-module=modules/ModSecurity-nginx

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #48

27. Сообщение от 1 (??), 17-Апр-24, 10:10   +/
Ну у каждого свои тараканы. Кому-то религия не позволяет, кому-то классовая ненависть.
Если не парит, используй что работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

28. Сообщение от 1 (??), 17-Апр-24, 10:13   +1 +/
Чуть не забыл -
lua_package_path "/usr/share/nginx/lib/lua/?.lua;;";
в секцию http.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

29. Сообщение от Аноним (29), 17-Апр-24, 10:24   +/
Есть stable (где все более-менее стабилизировано), а есть mainline, который для прода. Всегда так было, в оригинале тоже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

30. Сообщение от Аноним (31), 17-Апр-24, 11:33   +/
Open- чаще ассоциируется с пермессивом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #39

31. Сообщение от Аноним (31), 17-Апр-24, 11:35    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

33. Сообщение от Аноним (33), 17-Апр-24, 12:01   +/
Скрепно, но мы используем реализацию от cloudflare на хрусте.
Ответить | Правка | Наверх | Cообщить модератору

35. Сообщение от Роман (??), 17-Апр-24, 18:10   +/
> Добавлен новый модуль ngx_stream_pass_module, предназначенный для проброса принятых соединений напрямую в любой слушающий сокет, связанный с такими модулями, как http, stream и mail.

В чем предназначение и удобство кроме некоего синтаксического сахара, какой вариант предпочтительного использования?

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

38. Сообщение от Аноним (39), 17-Апр-24, 19:00   –1 +/
nginx обычно ставят перед одним апстримом, так что активный health check не имеет особого смысла.

Там, где апстримов больше, лучше использовать специализированные прокси — Envoy, HAProxy.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #41

39. Сообщение от Аноним (39), 17-Апр-24, 19:02   +/
Ну или с Тео: "Для большей безопасности мы реализовали только 5% фич (но дыр от этого меньше не стало)"
Например, OpenSMTPD.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

40. Сообщение от Аноним (39), 17-Апр-24, 19:04   +/
Зачем тащить это всё в event loop сервера?
Если что, исполнение lua там блокирующее, так что если redis отвалится — встанет весь веб-сервер.

Лучше сделайте external authz https://docs.nginx.com/nginx/admin-guide/security-controls/c.../

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #44

41. Сообщение от Аноним (22), 17-Апр-24, 19:15   +/
Конечно не ставят у него же нет хелсчека, он есть в plus версии. А засовывание такого простого функционала в платку уже говорит о пути не туда и деградации. Опять же если бы хелсчек не был нужен его бы ни в какой версии не было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #43

42. Сообщение от Аноним (22), 17-Апр-24, 19:21   –1 +/
Может что конфиг самодокументировался и было меньше магии?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

43. Сообщение от пох. (?), 18-Апр-24, 07:25   –1 +/
Тебе ж команда импортозаместителей сп-ла и шва6одно раздает... а, стоп, а вовсе и не шва6одно, это фича pro.

> А засовывание такого простого функционала

был бы он такой простой - ты бы его ведь сам за пол-часа написал, написал бы, ГА?!

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

44. Сообщение от Ilya Indigo (ok), 18-Апр-24, 09:02   +/
Вы вообще читали изначальную техническую задачу, 2-ой абзац?

> Зачем тащить это всё в event loop сервера?

Затем, что в nginx и в его кучи новодельных форках нету простой возможности обратиться к redis и получать от него данные. Мне самому этот луа 300 лет не нужен, но по другому к redis не обратиться, а вешать отдачу статики на php-fpm мне очень не хочется.

> Лучше сделайте external authz https://docs.nginx.com/nginx/admin-guide/security-controls/c.../

И как этот external authz будет обращаться к redis?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #49

45. Сообщение от Аноним (45), 18-Апр-24, 09:52   –1 +/
https://opennet.ru/60722-pingora
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

46. Сообщение от Alex_Kemail (??), 18-Апр-24, 20:39   –1 +/
Ваша задача неплохо решится через X-Accel-Redirect
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #47

47. Сообщение от Ilya Indigo (ok), 19-Апр-24, 09:12   +/
Моя задача НЕ решается с помощью этого заголовка!
X-Accel-Redirect может лишь более безопасно скрыть реальный путь защищённого статического контента, но обращение к redis за авторизацией он не выполнит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

48. Сообщение от Ilya Indigo (ok), 19-Апр-24, 11:03   +/
Благодарю!
Вся моя проблема была в отсутствии 2-ой строки.

export LUAJIT_INC=%{_includedir}/luajit-5_1-2.1
export LUAJIT_LIB=%{_libdir}

Видимо если переопределяю LUAJIT_INC то нужно сразу и переопределить LUAJIT_LIB даже если она стандартная.

Луамодуль собрал, буду собирать lua-resty-redis.

P.S. /var/log/nginx/error.log

2024/04/19 11:21:48 [alert] 23985#23985: detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)
2024/04/19 11:21:48 [alert] 23985#23985: failed to load the 'resty.core' module (https://github.com/openresty/lua-resty-core); ensure you are using an OpenResty release from https://openresty.org/en/download.html (reason: module 'resty.core' not found:
    no field package.preload['resty.core']
    no file './resty/core.lua'
    no file '/usr/share/luajit-5_1-2.1/resty/core.lua'
    no file '/usr/local/share/lua/5.1/resty/core.lua'
    no file '/usr/local/share/lua/5.1/resty/core/init.lua'
    no file '/usr/share/lua/5.1/resty/core.lua'
    no file '/usr/share/lua/5.1/resty/core/init.lua'
    no file './resty/core.so'
    no file '/usr/local/lib/lua/5.1/resty/core.so'
    no file '/usr/lib64/lua/5.1/resty/core.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'
    no file './resty.so'
    no file '/usr/local/lib/lua/5.1/resty.so'
    no file '/usr/lib64/lua/5.1/resty.so'
    no file '/usr/local/lib/lua/5.1/loadall.so') in /etc/nginx/nginx.conf:67

Ещё и lua-resty-core нужен.

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

49. Сообщение от Аноним (49), 20-Апр-24, 03:00   –1 +/
Да как угодно. Десять строк кода на golang, например
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

50. Сообщение от Аноним (50), 26-Апр-24, 23:57   +/
Четные версии - стабильные, нечетные версии - основные. Но вообще да, экспериментальные фичи, наверное, должны быть 1.27
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18


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

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




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

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