我发现要将 LUA 与 Nginx 结合使用,我需要:
- 使用 OpenResty 平台:https://openresty.org/en/installation.html
- 支付 getpagespeed 订阅以获取模块 RPM
- 使用源代码中的 LUA 模块构建 Nginx,例如https://tarunlalwani.com/post/building-nginx-with-lua/
我想知道如何构建模块本身,然后将其加载到打包的 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。
对于业余项目,我建议不要费心编译它。但对于生产用例,我不建议编译,因为存在安全风险和所有维护麻烦。