2012-02-24 51 views
8

作为一个学习练习,我花了一些时间来创建一些基本的应用程序来获取Lua。我已经在Natty/Ubuntu上安装并运行了很好,但是,如何让它与nginx一起玩,我感到有点遗憾。在nginx下运行lua(用lua编写一个网站)

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

不过,我仍然相当失落和不确定如何让即使是在它的工作基本水平。是否可以在我的nginx.conf文件中包含某些内容来处理/ lua请求,还是我需要重新编译/重新安装nginx? (我宁愿避免这一点)。

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

+0

我不知道在Apache/Nginx中运行Lua,但这里是你如何在Heroku中运行它:http://leafo.net/posts/lua_on_heroku.html – kikito 2012-02-24 18:13:27

回答

9

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

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

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

  1. 您可以到这一个网络服务器如the Lua webserver, xavantethttpd甚至Apache和“proxy_pass”成立类似 多少与Apache的PHP做。

  2. 您可以设置最多的Lua作为CGI运行(类似于FastCGI的 到PHP虽然Lua中没有FPM的等价物),并把这种需要 。

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

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

顺便说一句,openresty只是普通的Nginx,其中包含一些第三方模块,包括ngx_lua和openresty背后的人都是ngx_lua。

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

+0

感谢您的回应!这或多或少是我所期望的,但很好的参考我的情况来听。 – 2012-02-28 18:32:20

5

我没有尝试过与官方nginx的分布,但它是很容易与OpenResty(http://openresty.org/

一个简单的nginx.conf来测试它,请参阅“入门”页面。

0

您需要下载三个模块并重新编译nginx。 在这里,你需要执行

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

make 

make install 

之后,你就可以开始你的nginx使用Lua使用的命令。conf文件

3

在Ubuntu中,您可以通过简单地安装nginx-extras来使用lua模块作为nginx。