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

作为一个学习练习,我已经花了一些时间来创build一些基本的应用程序来拾取Lua。 我已经在Natty / Ubuntu上安装并运行了,但是如何让它和nginx一起玩,我感觉有些遗憾。

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

然而,即使在基本的层面上,我仍然很失落,不确定如何让它工作。 是否有可能只包括一些东西到我的nginx.conf文件来处理/ lua请求,还是我需要重新编译/重新安装nginx? (我宁愿避免这一点)。

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

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

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

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

  1. 你可以设置一个网络服务器,如Lua的网络服务器,xavante或thttpd ,甚至Apache和“proxy_pass”类似于Apache的PHP多少。

  2. 您可以将Lua设置为以CGI运行(类似于使用FastCGI的PHP,虽然Lua没有FPM的等价物),并根据需要调用它。

这两个选项中的任何一个都不需要ngx_lua。

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

BTW openresty只是普通的Nginx,其中包含了一些第三方模块,包括ngx_lua和openresty背后的人都是在ngx_lua后面。

你可以自己手动添加尽可能多的相同的模块到Nginx。

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

查看简单的nginx.conf的“入门”页面来测试它。

在Ubuntu中,只需安装nginx-extras就可以使用lua模块作为nginx。

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

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

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