在nginx下运行Lua(使用Lua编写网站)

9
作为一个学习练习,我花了一些时间通过创建一些基本应用程序来学习Lua。我已经在Natty/Ubuntu上成功安装和运行了它,但是,我有点不知道如何让它与nginx协同工作。
我已经在这里阅读了一些内容 http://wiki.nginx.org/HttpLuaModule#Installation ,并将此repo https://github.com/chaoslawful/lua-nginx-module 克隆到了我的/etc/nginx文件夹中...
然而,我仍然很茫然,不确定如何使其即使在基本水平上也能正常工作。是否可以只需在我的nginx.conf文件中包含某些内容来处理/lua请求,还是需要重新编译/重新安装整个nginx?(我宁愿避免这种情况)。
我已经使用php在nginx下通过fpm工作了相当长的时间,但我真的不知道该从哪里开始以类似的方式使Lua工作。

我对在Apache/Nginx中运行Lua毫无头绪,但是这里是如何在Heroku上运行它的方法:http://leafo.net/posts/lua_on_heroku.html - kikito
4个回答

10

ngx_lua模块是用于在nginx web服务器中直接运行Lua代码。可以以这种方式运行整个Lua应用程序,但这不是该模块的特定目标。实际上,该模块指令中的一些明确不应与长时间运行或复杂例程一起使用。

您需要重新编译Nginx并添加此模块,因为不能仅仅下载一个Nginx模块并像那样使用它。

要运行类似于运行PHP的Lua应用程序,可以配置nginx将“.lua”请求传递给Lua处理程序(类似于PHP)。

  1. 您可以设置一个Web服务器,例如Lua Web服务器,xavantethttpd甚至Apache,然后“proxy_pass”到这个服务器,类似于许多人对PHP使用Apache的方式。

  2. 可以将Lua设置为运行为CGI(类似于使用FastCGI的PHP,尽管Lua没有相当于FPM的东西),并根据需要调用它。

这两个选项都不需要ngx_lua。

基本上,PHP、Lua等属于“CGI”脚本的广泛范畴,任何关于运行这些脚本的“如何”都可以应用于Lua。

顺便说一下,openresty只是常规Nginx,其中包含一些第三方模块,包括ngx_lua和openresty背后的人与ngx_lua相同。您可以手动向Nginx添加许多相同的捆绑模块。


谢谢您的回复!这基本上是我预期的,但很高兴听到它与我的情况相关。 - Jonathan Coe

6
我没有尝试过官方的nginx发行版,但使用OpenResty(http://openresty.org/)非常容易。

请参阅“入门指南”页面,以获取一个简单的nginx.conf文件进行测试。


3
在Ubuntu中,您可以通过安装nginx-extras模块来使用lua模块。

0

您需要下载三个模块并重新编译nginx。 以下是您需要执行的命令

./configure --prefix=/usr/local/nginx --add-module=../ngx_devel_kit/ --add-module=../lua-nginx-module/

make

make install

之后您就可以在nginx.conf文件中开始使用lua了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接