Для сборки модулей Nginx можно использовать специально подготовленный build скрипт, который сам устанавливает нужные для сборки инструменты, проверяет зависимости, скачивает исходники и опакечивает их в deb или rpm.
Скрипт умеет создавать пакеты с модулями и для свободной, и для коммерческой версии Nginx. Посмотрим на него, на примере сборки vts модуля:
1. Скачиваем скрипт, делаем его исполняемым:
# wget http://hg.nginx.org/pkg-oss/raw-file/default/build_module.sh # chmod +x build_module.sh
2. Собираем vts модуль одной командой (ниже разберём её подробнее):
# LANG=C ./build_module.sh -v 1.15.0 https://github.com/vozlt/nginx-module-vts.git
LANG=C — в данном случае нужен, если у Вас по какой-то причине система не англоязычная.
-v 1.15.0 — версия под которую собирается модуль. Если мы хотим собрать что-то для Nginx Plus, используем ключ -r.
github.com/vozlt/nginx-module-vts.git — адрес репозитория с исходным кодом модуля.
Если репозиторий содержит всё нужное для конфигурации и сборки, после выполнения команды нам будут доступны пакеты, собранные под нужную версию Nginx. Нам останется только установить их и начать использование. Для CentOS всё выглядит так:
# yum localinstall /root/rpmbuild/RPMS/x86_64/nginx-module-vts-1.15.0-1.el7_4.ngx.x86_64.rpm
Стоит отметить, что к сожалению не все модули собираются так же легко и просто. Например, попытка сборки Modsecurity, если его нет в системе, скорее всего закончится неудачей, а попытка собрать naxsi приведёт к ошибке, потому что конфиг для сборки у них лежит не по тому пути, где его пытается найти скрипт.
Однако, подготовленные к подобной сборке модули, либо какие-то не сложные, не требующие зависимостей модули скриптом собираются и опакечиваются без проблем.