Я обнаружил, что для использования LUA с Nginx мне нужно:
Интересно, как собрать сам модуль, а затем загрузить его в упакованный Nginx. Я не хочу создавать Nginx, поскольку это означает, что я потеряю обновления пакетов. Как я могу это сделать?
Интересно, как собрать сам модуль, а затем загрузить его в упакованный Nginx.
Чтобы построить сам модуль, вы можете получить любой существующий модуль SRPM для модуля NGINX и настроить его по мере необходимости. Главное - убедиться, что вы прошли --with-compat
в сценарий настройки NGINX, чтобы модуль не компилировался с теми же аргументами, что и NGINX, с которым вы его будете использовать.
Вам также нужно будет создать отдельный пакет для luajit2
, чтобы получить выгоду от более быстрого выполнения Lua (или убедиться, что он статически связан в пакете модуля).
Создание отдельного luajit2
package - хорошая идея, потому что тогда он отделяется от модуля, и вы можете обновить его отдельно, когда выйдет новая версия.
Затем вам нужно будет отслеживать выпуски библиотеки NGINX / модуль / luajit2, чтобы постоянно перестраивать пакет модуля / библиотеки, а затем применять его к репозиторию, который вы вручную настроили.
В конце концов, мы решили, что делать все это самостоятельно - излишне, и выбрали репозиторий GetPageSpeed, который предоставляет как модуль Lua, так и более быстрый luajit2. Я говорю, что это сэкономило деньги, потому что основная ветка NGINX выпускается примерно каждые 4–6 недель, и мы можем просто yum upgrade
в новые модули NGINX / (там не только модули Lua, но мы также используем из них PageSpeed и Brotli).
Бесплатные альтернативы, упомянутые в OpenResty, не сокращают его, поскольку они, как правило, полагаются на более старые версии NGINX, а мы хотим, чтобы была доступна последняя основная линия NGINX.
Для любительского проекта я бы посоветовал не компилировать его. Но для производственного использования я бы не рекомендовал компиляцию из-за рисков безопасности и всех хлопот с обслуживанием.