将 LUA 构建为动态 Nginx 模块

将 LUA 构建为动态 Nginx 模块

我发现要将 LUA 与 Nginx 结合使用,我需要:

我想知道如何构建模块本身,然后将其加载到打包的 Nginx 中。我不愿意构建 Nginx,因为这意味着我会丢失软件包更新。我该怎么做?

答案1

我想知道如何构建模块本身然后在打包的 Nginx 中加载它。

要构建模块本身,您可以获取 NGINX 模块的任何现有模块 SRPM 并根据需要进行调整。这里的关键是确保将其传递--with-compat给 NGINX 配置脚本,这样模块就不必使用与您将要使用的 NGINX 完全相同的参数进行编译。

您还必须为 构建一个单独的包luajit2,以便从更快的 Lua 执行中受益(或确保它在模块包中静态链接)。

构建单独的luajit2包是一个好主意,因为它与模块分离,并且您可以在新版本发布时单独更新它。

然后,您必须监视 NGINX 发布/模块/luajit2 库发布,以不断重建模块/库包,然后将其应用到您手动设置的存储库。

最后,我们决定自己做这整件事有点过头了,所以我们选择了 GetPageSpeed 存储库,它同时提供了 Lua 模块和更快的 luajit2。我认为它节省了一些钱,因为 NGINX 主线大约每 4-6 周发布一次,我们可以直接yum upgrade使用新的 NGINX/模块(那里不仅有 Lua 模块,我们还使用其中的 PageSpeed 和 Brotli)。

上述的免费软件替代品 OpenResty 并不适用,因为它们倾向于依赖较旧的 NGINX 版本,而我们希望获得最新的主流 NGINX。

对于业余项目,我建议不要费心编译它。但对于生产用例,我不建议编译,因为存在安全风险和所有维护麻烦。

相关内容