2012-02-24 39 views
8

Là một bài tập học tập, tôi đã dành thời gian để chọn Lua bằng cách tạo một số ứng dụng cơ bản. Tôi đã nhận được nó được cài đặt và chạy tuyệt vời trên Natty/Ubuntu, tuy nhiên, tôi là một chút bị mất như thế nào để có được nó để chơi tốt đẹp với nginx.Chạy Lua dưới nginx (viết một trang web với Lua)

Tôi đã đọc một chút ở đây http://wiki.nginx.org/HttpLuaModule#Installation Và nhân bản repo này https://github.com/chaoslawful/lua-nginx-module vào tôi/etc/thư mục nginx ...

Tuy nhiên, tôi vẫn còn khá bị mất và không chắc chắn làm thế nào để có được nó làm việc ngay cả trên một mức cơ bản. Có thể chỉ cần bao gồm một cái gì đó vào tập tin nginx.conf của tôi để xử lý/yêu cầu lua, hoặc tôi cần phải biên dịch lại/cài đặt lại nginx hoàn toàn? (Tôi muốn tránh điều này).

Tôi đã sử dụng php dưới nginx qua fpm trong một thời gian, nhưng tôi thực sự không chắc chắn nơi để bắt đầu nhận Lua làm việc theo cách tương tự.

+0

Tôi không có ý tưởng về việc chạy Lua trong Apache/Nginx, nhưng đây là cách bạn chạy nó trong Heroku: http://leafo.net/posts/lua_on_heroku.html – kikito

Trả lời

9

Mô-đun ngx_lua là để chạy mã Lua trực tiếp trong máy chủ web nginx. Có thể chạy toàn bộ các ứng dụng Lua theo cách này nhưng đây không phải là mục tiêu cụ thể của mô-đun đó. Trên thực tế, một số chỉ thị mô-đun đặc biệt không nên được sử dụng với các hoạt động dài hoặc phức tạp.

Bạn sẽ cần phải biên dịch lại Nginx với mô-đun này vì bạn không thể tải xuống mô-đun Nginx và sử dụng mô-đun đó như thế.

Để chạy các ứng dụng Lua tương tự như cách bạn chạy PHP, bạn có thể cấu hình nginx để chuyển yêu cầu ".lua" tới trình xử lý Lua (Tương tự như PHP).

  1. Bạn có thể thiết lập một máy chủ web như the Lua webserver, xavante hoặc thttpd hoặc thậm chí Apache và "proxy_pass" này tương tự như có bao nhiêu làm với Apache cho PHP.

  2. Bạn có thể đặt Lua chạy để chạy như CGI (tương tự như PHP với FastCGI mặc dù Lua không có tương đương FPM) và gọi số này là cần thiết.

Bạn không cần ngx_lua cho một trong hai tùy chọn.

Về cơ bản, PHP, Lua và như vậy thuộc danh mục rộng của các tập lệnh "CGI" và bất kỳ "cách thực hiện" nào trên các tập lệnh này có thể được áp dụng cho Lua.

BTW openresty chỉ là Nginx thường xuyên với một số mô-đun bên thứ ba đi kèm trong đó bao gồm ngx_lua và những người đứng sau openresty là như nhau sau ngx_lua.

Bạn có thể thêm nhiều mô-đun được nhóm theo cách thủ công vào Nginx như bạn muốn.

+0

Cảm ơn bạn đã phản hồi! Đây là nhiều hơn hoặc ít hơn những gì tôi mong đợi, nhưng tốt để nghe nó với tham chiếu đến tình hình của tôi. –

5

tôi đã không cố gắng với sự phân bố nginx chính thức, nhưng nó đã đủ dễ dàng với OpenResty (http://openresty.org/)

Xem trang "bắt đầu" cho một đơn giản nginx.conf để kiểm tra nó.

0

Bạn cần tải xuống ba mô-đun và biên dịch lại nginx. đây các lệnh mà bạn cần phải thực hiện

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

make 

make install 

Sau đó bạn có thể bắt đầu sử dụng sử dụng lua trong nginx của bạn.conf file

3

Trong ubuntu bạn có thể sử dụng mô-đun lua cho nginx bằng cách cài đặt nginx-extras.