1.7, Sw00p aka Jerom (?), 02:29, 10/02/2016 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
ещёбы создали бы репозиторий сторонних модулей с проверкой качества было бы хорошо, а то блин модсек текёт как лань
| |
1.8, Какаянахренразница (ok), 05:21, 10/02/2016 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Добавлена поддержка динамически загружаемых модулей. Модуль оформляется
> в виде разделяемой библиотеки и загружается при помощи директивы
> load_module (например, "load_module modules/ngx_mail_module.so");
И в каком месте он динамический, если его надо прописывать в конфиге и если он загружается в момент запуска? Или можно сделать что-нибудь типа "nginx -s load_module modules/foo.so"?
| |
|
|
3.18, Какаянахренразница (ok), 10:01, 10/02/2016 [^] [^^] [^^^] [ответить]
| +3 +/– |
> /etc/init.d/nginx upgrade
Спасибо тебе, мой анонимный друг.
Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить. Нашёл вот такое: http://nginx.org/en/docs/control.html#upgrade Там написано, что бинарник nginx аккуратно перегружается и заново читает конфиг.
Но вопрос остаётся: возможно ли подгрузить/выгрузить модуль без правки конфигов и перезапуска серванта.
| |
|
4.22, Аноним (-), 12:29, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
Нет. У nginx'а динамически загружаемые в значении Dynamic linked, а не "подгружаемые в любой момент времени" - видимо издержки перевода.
Но ты всегда можешь написать патч и отправить им, заодно обосновав нафига этот функционал нужен в веб-сервере, который можно если что и перезапустить.
| |
|
5.25, Какаянахренразница (ok), 13:14, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
> Но ты всегда можешь написать патч и отправить им
Могу... Не не могу.
> нафига этот функционал нужен в веб-сервере, который можно если что и перезапустить.
А нафига модули нужны в ядре ОС, которое можно если что и перезапустить?
| |
|
6.29, Аноним (-), 13:54, 10/02/2016 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Но ты всегда можешь написать патч и отправить им
> Могу... Не не могу.
Можешь купить nginx plus и заплатить за добавление такого функционала.
>> нафига этот функционал нужен в веб-сервере, который можно если что и перезапустить.
> А нафига модули нужны в ядре ОС, которое можно если что и
> перезапустить?
Затем что веб-сервер перезапускается незаметно для пользователей за время меньше секунды, без разрыва соединений. Вот когда ОС можно будет перезагрузить за время меньше секунды без остановки пользовательского ПО и разрыва соединений - тогда и там можно будет поднять вопрос целесообразности загрузки модулей на лету.
| |
|
7.40, Hile (?), 23:45, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
Эта откуда такая инфа ? Без разрыва соединений....
Чет графики коннектов говорят об обратном :)
| |
|
8.51, XoRe (ok), 15:29, 13/02/2016 [^] [^^] [^^^] [ответить] | +/– | Без разрыва уже установленных TCP соединений - не совсем верно, конечно Точнее ... текст свёрнут, показать | |
|
|
|
|
4.26, Аноним (-), 13:14, 10/02/2016 [^] [^^] [^^^] [ответить]
| +1 +/– |
> nginx аккуратно перегружается и заново читает конфиг
Мастер-процесс nginx переносит новые входящие соединения на новый запущенный бинарь воркера, ожидает завершения соединений на старом воркере и его гробит.
| |
|
5.27, Какаянахренразница (ok), 13:17, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
>> nginx аккуратно перегружается и заново читает конфиг
> Мастер-процесс nginx переносит новые входящие соединения на новый запущенный бинарь воркера,
> ожидает завершения соединений на старом воркере и его гробит.
Да. Поэтому я использовал слово "аккуратно".
| |
|
4.39, Wladmis (ok), 21:38, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
> Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить.
А почитать init-скрипт?
| |
|
5.42, Какаянахренразница (ok), 05:43, 11/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
>> Не совсем понятно, что именно происходит внутри инит-скрипта. Пришлось гуглить.
> А почитать init-скрипт?
Я сказал "не совсем понятно" исключительно из вежливости. У меня нет доступа к init-скриптам Анонима и мне, собственно, глубоко пофигу, что у него там написано. В убунтoвском инит-скрипте nginx-a я уже как-то натыкался на баг и с тех пор перегружаю вебсервер без него. Поэтому я хочел узнать, какой командой можно загружать/выгружать модули.
| |
|
|
|
2.13, RaSla (?), 07:59, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
В том месте, что теперь вместо разных пакетов(скомпилированных с разным составом модулей):
nginx
nginx-full
nginx-extras
nginx-light
и т.д.
можно будет сделать 1 единственный пакет, который заменяет их все:
nginx
А ненужные модули просто НЕ ПОДКЛЮЧАЮТСЯ при (ре)старте сервера
| |
|
3.17, Andrey Mitrofanov (?), 09:44, 10/02/2016 [^] [^^] [^^^] [ответить]
| +2 +/– |
> В том месте, что теперь вместо разных пакетов(скомпилированных с разным составом модулей):
> можно будет сделать 1 единственный пакет, который заменяет их все:
> nginx
> А ненужные модули просто НЕ ПОДКЛЮЧАЮТСЯ при (ре)старте сервера
Ждём n2ebable? Скорее бы.
| |
|
4.48, myhand (ok), 13:55, 11/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
Тебе смишно, а мейнтейнерам пакета с такой расширяемостью как у
nginx - слезы. Индеец в этом отношении действительно удобнее, сложно спорить.
| |
|
3.19, Какаянахренразница (ok), 10:03, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
Не это делает их динамическими.
Я не хочу при старте/рестарте сервера. Я хочу динамически. Как из командной строки или из другой программы в произвольный момент времени загрузить/выгрузить произвольный модуль?
| |
|
4.23, Аноним (-), 12:30, 10/02/2016 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Не это делает их динамическими.
> Я не хочу при старте/рестарте сервера. Я хочу динамически. Как из командной
> строки или из другой программы в произвольный момент времени загрузить/выгрузить произвольный
> модуль?
Динамические в значении dynamic library, а не в значении "загружаю в произвольный момент".
Если хочется динамически в смысле без рестарта - патчи welcome или fork делай и пили там.
| |
4.32, angra (ok), 15:04, 10/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
А что это тебе даст? Ну загрузил ты модуль, болтается он в памяти, дальше что? Неужели непонятно, что пользы от этого без правки конфига практически никакой нет. А если конфиг правишь, то тебе все равно придется сделать reload.
| |
|
5.43, Какаянахренразница (ok), 05:56, 11/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
> А что это тебе даст? Ну загрузил ты модуль, болтается он в
> памяти, дальше что? Неужели непонятно, что пользы от этого без правки
> конфига практически никакой нет. А если конфиг правишь, то тебе все
> равно придется сделать reload.
Именно потому, что нельзя изменить параметры работы веб-сервера без перегрузки (а reload это "аккуратная" перезагрузка без даунтайма), я и говорю, что модули не являются динамическими. Если бы можно было попросить веб-сервер заново прочитать конфиг (т.е. изменить параметры своей работы) на лету, совсем без перегрузки, то можно было бы ставить вопрос: "А можно изменить параметры работы веб-сервера без повторного прочтения конфигов?".
А так, да, в нынешней ситуации мой вопрос не имеет смысла.
| |
|
|
|
2.52, XoRe (ok), 15:39, 13/02/2016 [^] [^^] [^^^] [ответить]
| +/– |
> И в каком месте он динамический, если его надо прописывать в конфиге
> и если он загружается в момент запуска? Или можно сделать что-нибудь
> типа "nginx -s load_module modules/foo.so"?
Динамический он в том смысле, что слинкован динамически в виде отдельного .so файла, а не статически (внутри главного бинарника).
В тексте новости так и написано:
> Модуль оформляется в виде разделяемой библиотеки
Если что, вот хорошее объяснение:
О разнице между динамическими и статическими библиотекам
http://www.amse.ru/courses/cpp2/2010_11_01_lib.html
Не каждый сервис может подгружать so файлы "на лету".
Куда проще рестартануть сервис с новым списком библиотек.
В nginx и так все сделано для очень мягкого и незаметного рестарта.
| |
|
1.12, Аноним (-), 07:43, 10/02/2016 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться
| |
|
2.14, eRIC (ok), 08:32, 10/02/2016 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться
уже случилось, обновление Java 8u74 :)
| |
|
|
4.16, Аноним (-), 09:41, 10/02/2016 [^] [^^] [^^^] [ответить]
| +1 +/– |
ElasticSearch, Cassandra, PrestoDB и остальная big-data лабудень…
| |
|
|
2.20, Какаянахренразница (ok), 10:11, 10/02/2016 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Вторая хорошая новость за неделю. Что-то очень плохое теперь должно случиться
Чтобы не случилось ничего плохого, после хорошей новости следует совершить жертвоприношение айти-богам.
| |
|
3.21, Andrey Mitrofanov (?), 11:59, 10/02/2016 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Чтобы не случилось ничего плохого, после хорошей новости следует совершить жертвоприношение айти-богам.
Ритуальный фулл-бэкап, шифрованный 8ью раундами 8Кбитным ключом, в полночь в полнолуние вокруг костра в /dev/null ! Через левое плечо со свитком GPLv3 в правой руке. //Да, спасибо, регулярно.
| |
|
|
|
|
|
|
5.45, CHERTS (??), 07:51, 11/02/2016 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пожалуйста: 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
| |
|
6.46, Какаянахренразница (ok), 10:47, 11/02/2016 [^] [^^] [^^^] [ответить]
| +2 +/– |
Спасибо.
Эй, юзер cadmi, барин жалует тебе ейный diff. Прямо с барского плеча. Кланяйся барину. Ну, или хотя бы скажи "спасибо". Как видишь, помогает.
| |
|
|
|
|
|
|