The OpenNET Project / Index page

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

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

"Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от opennews (ok) on 09-Фев-16, 19:46 
Доступен (http://mailman.nginx.org/pipermail/nginx-announce/2016/00017...) выпуск основной ветки высокопроизводительного HTTP-сервера nginx 1.9.11, в котором реализованы следующие изменения:


-  Добавлена поддержка динамически загружаемых модулей (http://nginx.org/en/docs/ngx_core_module.html#load_module). Модуль оформляется в виде разделяемой библиотеки и загружается при помощи директивы load_module (например, "load_modulemodules/ngx_mail_module.so");
-  В resolver (http://nginx.org/en/docs/http/ngx_http_core_module.html#reso...) добавлена поддержка отправки DNS-запросов с использованием протокола TCP;

-  Исправлена ошибка, из-за которой переменная $request_length не учитывала размер заголовков запроса при использовании HTTP/2;
-  Исправлена ошибка в модуле ngx_http_v2_module.

URL: http://mailman.nginx.org/pipermail/nginx-announce/2016/00017...
Новость: http://www.opennet.ru/opennews/art.shtml?num=43839

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

Оглавление

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


1. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +2 +/
Сообщение от xl32 (ok) on 09-Фев-16, 19:46 
Ух, заживём! Сразу пробовать на ngx_brotli.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от xl32 (ok) on 10-Фев-16, 13:20 
Да, динамический brotli прекрасно работает. Протестировано на https://zavedu.org/
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +6 +/
Сообщение от Аноним (??) on 09-Фев-16, 23:22 
Еще немного и хтаксес запилят
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Michael Shigorin email(ok) on 10-Фев-16, 00:59 
Ну да, про a patchy server все хором подумали при LoadModule...
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

49. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от myhand (ok) on 11-Фев-16, 13:57 
Зато сколько было кривляний перед тем как запилить...
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +2 +/
Сообщение от Аноним (??) on 10-Фев-16, 06:29 
Скоро будет жирнее индейца ))
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от Аноним (??) on 10-Фев-16, 06:41 
> Скоро будет жирнее индейца ))

cherokee или apache?

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

33. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от eRIC (ok) on 10-Фев-16, 15:04 
> cherokee или apache?

apache2


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

7. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Sw00p aka Jerom on 10-Фев-16, 02:29 
ещёбы создали бы репозиторий сторонних модулей с проверкой качества было бы хорошо, а то блин модсек текёт как лань
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "!!!"  +/
Сообщение от GrammarNarziss on 11-Фев-16, 11:10 
"течёт", позорище
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

50. "!!!"  +/
Сообщение от Sw00p aka Jerom on 11-Фев-16, 15:50 
граммарнаци?
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

8. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 05:21 
> Добавлена поддержка динамически загружаемых модулей. Модуль оформляется
> в виде разделяемой библиотеки и загружается при помощи директивы
> load_module (например, "load_module modules/ngx_mail_module.so");

И в каком месте он динамический, если его надо прописывать в конфиге и если он загружается в момент запуска? Или можно сделать что-нибудь типа "nginx -s load_module modules/foo.so"?

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

9. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Аноним (??) on 10-Фев-16, 06:22 
/etc/init.d/nginx upgrade

ну да

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

18. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 10:01 
> /etc/init.d/nginx upgrade

Спасибо тебе, мой анонимный друг.

Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить. Нашёл вот такое: http://nginx.org/en/docs/control.html#upgrade Там написано, что бинарник nginx аккуратно перегружается и заново читает конфиг.

Но вопрос остаётся: возможно ли подгрузить/выгрузить модуль без правки конфигов и перезапуска серванта.

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

22. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Аноним (??) on 10-Фев-16, 12:29 
Нет. У nginx'а динамически загружаемые в значении Dynamic linked, а не "подгружаемые в любой момент времени" - видимо издержки перевода.

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

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

25. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 13:14 
> Но ты всегда можешь написать патч и отправить им

Могу... Не не могу.

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

А нафига модули нужны в ядре ОС, которое можно если что и перезапустить?

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

29. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от Аноним (??) on 10-Фев-16, 13:54 
>> Но ты всегда можешь написать патч и отправить им
> Могу... Не не могу.

Можешь купить nginx plus и заплатить за добавление такого функционала.

>> нафига этот функционал нужен в веб-сервере, который можно если что и перезапустить.
> А нафига модули нужны в ядре ОС, которое можно если что и
> перезапустить?

Затем что веб-сервер перезапускается незаметно для пользователей за время меньше секунды, без разрыва соединений. Вот когда ОС можно будет перезагрузить за время меньше секунды без остановки пользовательского ПО и разрыва соединений - тогда и там можно будет поднять вопрос целесообразности загрузки модулей на лету.

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

40. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Hile on 10-Фев-16, 23:45 
Эта откуда такая инфа ? Без разрыва соединений....

Чет графики коннектов говорят об обратном :)

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

41. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Какаянахренразница (ok) on 11-Фев-16, 05:35 
Аноним правильно говорит. При upgrade запущенный инстанс сервера запускает ещё одну копию, но уже с новым конфигом, сам перестаёт принимать новые соединения, ждёт завершения всех установленных соединений и умирает. А новый инстанс с момента запуска начинает принимать и обрабатывать все новые соединения и не обращает никакого внимания на старый инстанс.

Ни единого разрыва ©

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

51. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от XoRe (ok) on 13-Фев-16, 15:29 
> Эта откуда такая инфа ? Без разрыва соединений....
> Чет графики коннектов говорят об обратном :)

Без разрыва уже установленных TCP соединений - не совсем верно, конечно.
Точнее будет сказать - аккуратно передав все LISTEN сокеты новому процессу.
То есть без ситуаций, когда 80 порт никто не слушает.
Магии никакой нет, просто аккуратное обращение с сокетами.
Инфа отсюда: http://nginx.org/ru/docs/control.html

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

26. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от Аноним (??) on 10-Фев-16, 13:14 
> nginx аккуратно перегружается и заново читает конфиг

Мастер-процесс nginx переносит новые входящие соединения на новый запущенный бинарь воркера, ожидает завершения соединений на старом воркере и его гробит.

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

27. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 13:17 
>> nginx аккуратно перегружается и заново читает конфиг
> Мастер-процесс nginx переносит новые входящие соединения на новый запущенный бинарь воркера,
> ожидает завершения соединений на старом воркере и его гробит.

Да. Поэтому я использовал слово "аккуратно".

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

39. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Wladmis (ok) on 10-Фев-16, 21:38 
> Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить.

А почитать init-скрипт?

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

42. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 11-Фев-16, 05:43 
>> Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить.
> А почитать init-скрипт?

Я сказал "не совсем понятно" исключительно из вежливости. У меня нет доступа к init-скриптам Анонима и мне, собственно, глубоко пофигу, что у него там написано. В убунтoвском инит-скрипте nginx-a я уже как-то натыкался на баг и с тех пор перегружаю вебсервер без него. Поэтому я хочел узнать, какой командой можно загружать/выгружать модули.

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

13. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от RaSla email on 10-Фев-16, 07:59 
В том месте, что теперь вместо разных пакетов(скомпилированных с разным составом модулей):
nginx
nginx-full
nginx-extras
nginx-light
и т.д.

можно будет сделать 1 единственный пакет, который заменяет их все:
nginx
А ненужные модули просто НЕ ПОДКЛЮЧАЮТСЯ при (ре)старте сервера

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

17. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +2 +/
Сообщение от Andrey Mitrofanov on 10-Фев-16, 09:44 
> В том месте, что теперь вместо разных пакетов(скомпилированных с разным составом модулей):
> можно будет сделать 1 единственный пакет, который заменяет их все:
> nginx
> А ненужные модули просто НЕ ПОДКЛЮЧАЮТСЯ при (ре)старте сервера

Ждём n2ebable? Скорее бы.

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

48. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от myhand (ok) on 11-Фев-16, 13:55 
Тебе смишно, а мейнтейнерам пакета с такой расширяемостью как у
nginx - слезы.  Индеец в этом отношении действительно удобнее, сложно спорить.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 10:03 
Не это делает их динамическими.

Я не хочу при старте/рестарте сервера. Я хочу динамически. Как из командной строки или из другой программы в произвольный момент времени загрузить/выгрузить произвольный модуль?

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

23. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Аноним (??) on 10-Фев-16, 12:30 
> Не это делает их динамическими.
> Я не хочу при старте/рестарте сервера. Я хочу динамически. Как из командной
> строки или из другой программы в произвольный момент времени загрузить/выгрузить произвольный
> модуль?

Динамические в значении dynamic library, а не в значении "загружаю в произвольный момент".

Если хочется динамически в смысле без рестарта - патчи welcome или fork делай и пили там.

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

32. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от angra (ok) on 10-Фев-16, 15:04 
А что это тебе даст? Ну загрузил ты модуль, болтается он в памяти, дальше что? Неужели непонятно, что пользы от этого без правки конфига практически никакой нет. А если конфиг правишь, то тебе все равно придется сделать reload.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

43. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 11-Фев-16, 05:56 
> А что это тебе даст? Ну загрузил ты модуль, болтается он в
> памяти, дальше что? Неужели непонятно, что пользы от этого без правки
> конфига практически никакой нет. А если конфиг правишь, то тебе все
> равно придется сделать reload.

Именно потому, что нельзя изменить параметры работы веб-сервера без перегрузки (а reload это "аккуратная" перезагрузка без даунтайма), я и говорю, что модули не являются динамическими. Если бы можно было попросить веб-сервер заново прочитать конфиг (т.е. изменить параметры своей работы) на лету, совсем без перегрузки, то можно было бы ставить вопрос: "А можно изменить параметры работы веб-сервера без повторного прочтения конфигов?".

А так, да, в нынешней ситуации мой вопрос не имеет смысла.

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

35. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Sw00p aka Jerom on 10-Фев-16, 15:29 
не путайте понятие консоли управления и конфиг файл, это вам не циска
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

52. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от XoRe (ok) on 13-Фев-16, 15:39 
> И в каком месте он динамический, если его надо прописывать в конфиге
> и если он загружается в момент запуска? Или можно сделать что-нибудь
> типа "nginx -s load_module modules/foo.so"?

Динамический он в том смысле, что слинкован динамически в виде отдельного .so файла, а не статически (внутри главного бинарника).
В тексте новости так и написано:
> Модуль оформляется в виде разделяемой библиотеки

Если что, вот хорошее объяснение:
О разнице между динамическими и статическими библиотекам
http://www.amse.ru/courses/cpp2/2010_11_01_lib.html

Не каждый сервис может подгружать so файлы "на лету".
Куда проще рестартануть сервис с новым списком библиотек.
В nginx и так все сделано для очень мягкого и незаметного рестарта.

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

12. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +4 +/
Сообщение от Аноним (??) on 10-Фев-16, 07:43 
Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от eRIC (ok) on 10-Фев-16, 08:32 
> Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться

уже случилось, обновление Java 8u74 :)

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

15. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  –1 +/
Сообщение от Аноним (??) on 10-Фев-16, 08:38 
разве она не у вантузятников?
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от Аноним (??) on 10-Фев-16, 09:41 
ElasticSearch, Cassandra, PrestoDB и остальная big-data лабудень…
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

20. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +3 +/
Сообщение от Какаянахренразница (ok) on 10-Фев-16, 10:11 
> Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться

Чтобы не случилось ничего плохого, после хорошей новости следует совершить жертвоприношение айти-богам.

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

21. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +2 +/
Сообщение от Andrey Mitrofanov on 10-Фев-16, 11:59 
> Чтобы не случилось ничего плохого, после хорошей новости следует совершить жертвоприношение айти-богам.

Ритуальный фулл-бэкап, шифрованный 8ью раундами 8Кбитным ключом, в полночь в полнолуние вокруг костра в /dev/null ! Через левое плечо со свитком GPLv3 в правой руке.  //Да, спасибо, регулярно.

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

30. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от CHERTS email(??) on 10-Фев-16, 14:17 
Модуль https://github.com/kvspb/nginx-auth-ldap тоже собирается для динамической загрузки, но только после правки config к виду http://pastebin.com/6deuf84h
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от cadmi on 10-Фев-16, 16:30 
> Модуль https://github.com/kvspb/nginx-auth-ldap тоже собирается для динамической загрузки,
> но только после правки config к виду http://pastebin.com/6deuf84h

Нормальные люди diff кладут, а не "к виду"

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

38. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от CHERTS email(??) on 10-Фев-16, 16:46 
Нормальные люди говорят спасибо, а не нудят.
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

44. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +/
Сообщение от Какаянахренразница (ok) on 11-Фев-16, 05:57 
> Нормальные люди говорят спасибо, а не нудят.

Спасибо. А можно diff получить? Ещё раз спасибо.

:-)

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

45. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +1 +/
Сообщение от CHERTS email(??) on 11-Фев-16, 07:51 
Пожалуйста: https://goo.gl/ZIfZB8
Или так:
--- config.orig    2016-02-11 09:36:55.932906200 +0500
+++ config    2016-02-11 09:41:05.000000000 +0500
@@ -1,14 +1,16 @@
ngx_addon_name=ngx_http_auth_ldap_module
-HTTP_MODULES="$HTTP_MODULES ngx_http_auth_ldap_module"
-NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_auth_ldap_module.c"

-CORE_LIBS="$CORE_LIBS -lldap"
+ngx_module_libs=-lldap

-case "$NGX_PLATFORM" in
-    Darwin:*|FreeBSD:*|Linux:*|SunOS:*)
-        CORE_LIBS="$CORE_LIBS -llber"
-    ;;
-esac
-
-CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS"
+if [ $ngx_module_link = DYNAMIC ] ; then
+    ngx_module_name="ngx_http_auth_ldap_module"
+    ngx_module_srcs="$ngx_addon_dir/ngx_http_auth_ldap_module.c"
+    . auto/module
+elif [ $ngx_module_link = YES ] ; then
+    ngx_module_type=HTTP
+    ngx_module_name=ngx_http_auth_ldap_module
+    ngx_module_incs=
+    ngx_module_deps=
+    ngx_module_srcs="$ngx_addon_dir/ngx_http_auth_ldap_module.c"
+    . auto/module
+fi
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

46. "Выпуск nginx 1.9.11 с поддержкой динамически загружаемых мод..."  +2 +/
Сообщение от Какаянахренразница (ok) on 11-Фев-16, 10:47 
Спасибо.

Эй, юзер cadmi, барин жалует тебе ейный diff. Прямо с барского плеча. Кланяйся барину. Ну, или хотя бы скажи "спасибо". Как видишь, помогает.

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

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

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




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

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