Запуск Lua под nginx (написание сайта с Lua) - PullRequest
8 голосов
/ 24 февраля 2012

В качестве учебного упражнения я посвятил некоторое время изучению Lua, создав несколько базовых приложений. Я установил и отлично работает на Natty / Ubuntu, однако, я немного растерялся, как заставить его играть хорошо с nginx.

Я немного прочитал здесь http://wiki.nginx.org/HttpLuaModule#Installation И клонировал этот репозиторий https://github.com/chaoslawful/lua-nginx-module в мою папку / etc / nginx ...

Тем не менее, я все еще немного растерян и не знаю, как заставить его работать даже на базовом уровне. Можно ли просто включить что-то в мой файл nginx.conf для обработки запросов / lua, или мне нужно вообще перекомпилировать / переустановить nginx? (Я бы предпочел избежать этого).

Я уже давно использую php под nginx через fpm, но я действительно не уверен, с чего начать работать Lua подобным образом.

Ответы [ 4 ]

9 голосов
/ 25 февраля 2012

Модуль ngx_lua предназначен для запуска кода Lua непосредственно на веб-сервере nginx.Таким способом можно запускать целые приложения Lua, но это не является конкретной целью этого модуля.На самом деле, некоторые из директив модуля специально не должны использоваться с долго выполняющимися или сложными подпрограммами.

Вам нужно будет перекомпилировать Nginx с этим модулем, так как вы не можете просто загрузить модуль Nginx и использовать его таким образом.

Для запуска приложений Lua аналогично тому, как вы запускаете PHP, вы можете настроить nginx для передачи запросов ".lua" в обработчик Lua (аналог PHP).

  1. Youможно настроить веб-сервер, такой как веб-сервер Lua, xavante или thttpd или даже Apache и "proxy_pass", аналогично тому, как это делают многие из Apache для PHP.

  2. Вы можете настроить Lua для работы в качестве CGI (аналогично PHP с FastCGI, хотя Lua не имеет эквивалента FPM) и вызывать его при необходимости.

Вам не нужен ngx_lua для любой из двух опций.

По сути, PHP, Lua и другие подпадают под широкую категорию скриптов "CGI", и любые "как" при их запуске можно применить к Lua.

Кстатиpenresty - это просто обычный Nginx с некоторыми сторонними модулями, включенными в комплект, включая ngx_lua, а люди за openresty такие же, как и ngx_lua.

Вы можете вручную добавить столько же связанных модулей в Nginx, сколько пожелаете.

6 голосов
/ 25 февраля 2012

Я не пробовал с официальным дистрибутивом nginx, но это было достаточно просто с OpenResty (http://openresty.org/)

См. Страницу «Начало работы» для простого nginx.conf, чтобы проверить это.*

3 голосов
/ 07 апреля 2013

В Ubuntu вы можете использовать модуль lua для nginx, просто установив nginx-extras.

0 голосов
/ 01 апреля 2013

Вам нужно скачать три модуля и перекомпилировать nginx.Вот команды, которые вам нужно выполнить

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

make

make install

После этого вы можете начать использовать lua в файле nginx.conf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...