为什么 nginx 在没有 Lua 和 Openresty 的情况下可以正常工作时需要 Lua?
另外,我想知道哪些 Lua 模块对于构建大型 Web 应用程序非常重要。
好的,这是两个问题。
为什么 nginx 需要 Lua
好吧,它不需要它;事实上,很多人使用普通的 nginx 就好了。尽管我通常只运行 openresty,但我经常发现自己仅使用 nginx 功能就可以做很多事情。
话虽这么说,Lua 是一种脚本语言,nginx 本身还没有(还没有)。它允许向网络服务器添加功能,而无需编写 C 模块,并且可以在运行时轻松更改或重新加载。
Kong 就是一个很好的例子:它使用 Lua 来编写 nginx 开箱即用并不真正支持的高级行为。
哪些 Lua 模块对于构建大型 Web 应用程序非常重要
这实际上取决于您要构建的内容。原则上,你可以单独使用 openresty 构建很多东西,如果你做得对,它可能会比用其他框架编写的大多数应用程序更快。
通常,您很可能至少需要某种模板引擎。允许您构建 HTML 页面而不必依赖 Luas“原始”字符串处理功能的东西。您很可能还需要一些库来连接您决定使用的任何数据库。从那里开始,它实际上主要取决于您要构建的内容。