2012-02-24 80 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。