Welcome! Log In Create A New Profile

Advanced

Путь поиска динамических модулей по умолчанию

Vadim A. Misbakh-Soloviov
March 25, 2017 02:36PM
Данный пост, скорее, обращение к Максиму, т.к. именно он закрыл связанный с
тем, о чём пойдёт речь, баг: ( https://trac.nginx.org/nginx/ticket/961 ), но я
так же приглашаю остальных участников рассылки высказать свои мысли по этому
поводу.

Суть же моего обращения в том, что в данном вопросе я, всё же, больше
солидарен с ожиданиями автора бага, нежели с решением команды разработки, и
думаю, что фича в виде установки c `--modules-path` не только пути установки
модулей, но и пути, по которому NginX будет их искать - довольно логична.

Стандартно, многие linux-системы собирают софт с `--prefix=/usr` и т.п. (в
общем, разбивкой служебных путей по разным частям фс). Порой на это даже
трудно повлиять, не переделывая билдскрипты.

В общем, "среднестатистическая" линуксовая сборка NginX выглядит так:
```
--prefix=/usr --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/
nginx/error.log --pid-path=/run/nginx.pid --lock-path=/run/lock/nginx.lock --
with-cc-opt=-I/usr/include --with-ld-opt=-L/usr/lib64 --http-log-path=/var/
log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client --
http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/
lib/nginx/tmp/fastcgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --http-
uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi
```

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

В случае же NginX, при обычной сборке, modules_path получается /usr/modules (я
так догадываюсь, из-за того, что по умолчанию оно имеет значение $prefix/
modules).

В итоге получается крайне не логичный путь, как по мне. Что ещё за /usr/
modules?

Тут на помощь приходит `--modules_path`. Но, к сожалению, после установки
NginX всё равно будет пытаться искать файлы относительно префикса. И класть
там симлинк - тот ещё костыль и равноценен тому, чтобы поставить их туда
напрямую (см. довод про нелогичность пути).

В случае инклуда конфигов, к слову, nginx вполне логично ищет их в /etc/nginx,
а не в prefix (хотя надо уточнить, не дистрибутивный ли патч фиксит это
поведение).
Так почему бы не сделать такое же по смыслу и для модулей? Чтобы не
провоцировать кучу лишней писанины на пустом месте :)

====

Так же, можно было бы на этапе сборки хардкодить расширение динамических
библиотек (so, dll, dylib), и так же не заставлять конфигописателя указывать
этот суффикс в конфиге, а просто конкатенировать параметр load_module (если он
в виде относительного, а не абсолютного пути) с "modules_path" спереди и
shared_suffix на конце.

Что думаете?
// особенно Максим
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Путь поиска динамических модулей по умолчанию

Vadim A. Misbakh-Soloviov March 25, 2017 02:36PM

Re: Путь поиска динамических модулей по умолчанию

Maxim Dounin March 25, 2017 10:50PM

Re: Путь поиска динамических модулей по умолчанию

Vadim A. Misbakh-Soloviov March 26, 2017 03:24AM

Re: Путь поиска динамических модулей по умолчанию

Vadim A. Misbakh-Soloviov March 26, 2017 05:36AM

Re: Путь поиска динамических модулей по умолчанию

Maxim Dounin March 27, 2017 08:40AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 176
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready