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

时间:2012-02-24 16:33:44

标签: nginx lua cgi

作为一项学习练习,我花了一些时间通过创建一些基本应用来获取Lua。我已经在Natty / Ubuntu上安装并运行得很好了,但是,我对如何让它与nginx玩得很好有点迷失。

我在这里读了一下http://wiki.nginx.org/HttpLuaModule#Installation 并将此repo https://github.com/chaoslawful/lua-nginx-module克隆到我的/ etc / nginx文件夹中......

然而,我仍然相当迷失,并且不确定如何在基本水平上使其工作。是否可以在我的nginx.conf文件中包含一些内容来处理/ lua请求,或者我是否需要重新编译/重新安装nginx? (我宁愿避免这种情况)。

我已经通过fpm在nginx下使用php了很长一段时间,但我真的不知道从哪里开始让Lua以类似的方式工作。

4 个答案:

答案 0 :(得分:9)

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

您需要使用此模块重新编译Nginx,因为您不能只下载Nginx模块并使用它。

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

  1. 您可以设置{@ 3}}等网络服务器 或the Lua webserver, xavante甚至Apache和“proxy_pass”对此类似 Apache for PHP有多少。

  2. 您可以将Lua设置为以CGI格式运行(类似于使用FastCGI的PHP) 虽然Lua没有相应的FPM)并称之为 需要的。

  3. 对于这两个选项中的任何一个,您都不需要ngx_lua。

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

    BTW openresty只是常规的Nginx,其中捆绑了一些第三方模块,包括ngx_lua,而openresty背后的人在ngx_lua背后也是如此。

    您可以根据需要自行手动将相同的捆绑模块添加到Nginx。

答案 1 :(得分:6)

我没有尝试使用官方的nginx发行版,但使用OpenResty(http://openresty.org/

这很容易

请参阅“使用入门”页面,以便对其进行简单的nginx.conf测试。

答案 2 :(得分:3)

在ubuntu中,只需安装nginx-extras即可将lua模块用于nginx。

答案 3 :(得分:0)

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

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

make

make install

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