2012-02-24 12 views
8

Come esercizio di apprendimento ho dedicato del tempo a raccogliere Lua creando alcune app di base. L'ho installato e funzionante alla grande su Natty/Ubuntu, tuttavia, sono un po 'perso su come farlo funzionare con nginx.Esecuzione di Lua in nginx (scrittura di un sito Web con Lua)

Ho letto un po 'qui http://wiki.nginx.org/HttpLuaModule#Installation e clonato questa repo https://github.com/chaoslawful/lua-nginx-module nel mio/etc/cartella nginx ...

Tuttavia, sono ancora piuttosto smarrito e incerto come farlo funzionare anche su un livello di base. È possibile includere qualcosa nel mio file nginx.conf per gestire le richieste/lua o devo ricompilare/reinstallare nginx del tutto? (preferirei evitare questo).

Ho già utilizzato php in nginx via fpm per un po 'di tempo, ma non sono sicuro di dove iniziare a far funzionare Lua in modo simile.

+0

Non ho idea di eseguire Lua in Apache/Nginx, ma ecco come lo si esegue in Heroku: http://leafo.net/posts/lua_on_heroku.html – kikito

risposta

9

Il modulo ngx_lua è per l'esecuzione del codice Lua direttamente nel server Web nginx. È possibile eseguire intere applicazioni Lua in questo modo, ma questo non è l'obiettivo specifico di quel modulo. In realtà, alcune delle direttive del modulo in particolare non dovrebbero essere utilizzate con le routine lunghe o complesse.

Avrete bisogno di ricompilare Nginx con questo modulo in quanto non si può semplicemente scaricare un modulo Nginx e usarlo in questo modo.

Per eseguire le applicazioni Lua in modo simile al modo in cui si esegue PHP, è possibile configurare nginx per passare richieste ".lua" a un gestore Lua (simile a PHP).

  1. È possibile configurare un server web, come the Lua webserver, xavante o thttpd o anche Apache e "proxy_pass" per questo in modo simile a quanti fare con Apache per PHP.

  2. È possibile impostare Lua per essere eseguito come CGI (simile al PHP con FastCGI anche se Lua non ha l'equivalente di FPM) e chiamare questo come necessario.

Non è necessario ngx_lua per nessuna delle due opzioni.

Fondamentalmente, PHP, Lua e simili rientrano nella vasta categoria di script "CGI" e qualsiasi "modo" di eseguirli può essere applicato a Lua.

BTW openresty è solo regolare Nginx con alcuni moduli di terze parti inclusi in ngx_lua e le persone dietro a openresty sono le stesse dietro a ngx_lua.

È possibile aggiungere manualmente tutti gli stessi moduli in bundle a Nginx come si desidera.

+0

Grazie per questa risposta! Questo è più o meno quello che mi aspettavo, ma buono a sentirlo in riferimento alla mia situazione. –

5

Non ho provato con la distribuzione ufficiale nginx, ma era abbastanza facile con OpenResty (http://openresty.org/)

Vedere la pagina "iniziare" per un semplice nginx.conf per testarlo.

0

È necessario scaricare tre moduli e ricompilare nginx. Ecco i comandi necessari per eseguire

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

make 

make install 

Dopo di che è possibile iniziare a utilizzare utilizzare lua nel nginx.conf file

3

In ubuntu è possibile utilizzare il modulo lua per nginx semplicemente installando nginx-extras.