在使用Lua与Nginx时出现错误。

我对nginx和lua非常陌生。我已经安装了Openresty。下面是我的nginx.conf文件中的代码。

server {
    location /hellolua {
        default_type 'text/plain';
        content_by_lua '
            local name = ngx.var.arg_name or "Anonymous"
            ngx.say("Hello, ", name, "!");
        ';
    }
}

当我运行以下命令时,

sudo service nginx start

我得到了错误信息。

Starting nginx: nginx: [emerg] unknown directive "content_by_lua" in /etc/nginx/nginx.conf:24
nginx: configuration file /etc/nginx/nginx.conf test failed

请让我知道我错过了什么。

点赞
用户1009655
用户1009655

看起来好像你没有安装正确的模块?ngx_lua (http://wiki.nginx.org/HttpLuaModule)

你提到了OpenResty。你有配置它用lua吗?如果没有,这里提供了指南(http://wiki.nginx.org/HttpLuaModule#Installation)。

简单的步骤为:

ngx_openresty可以用来安装Nginx、ngx_lua、标准的Lua 5.1解释器或LuaJIT 2.0之一,以及一系列强大的辅助Nginx模块。基本的安装步骤是简单的./configure --with-luajit && make && make install.

你也可以手动将ngx_lua编译进nginx中,完整的指南也在链接中提供。

在评论讨论后,我移除了回答中不相关的部分。

2013-11-08 08:29:40
用户2789404
用户2789404

默认情况下,OpenResty的nginx安装在路径/usr/local/openresty/nginx/sbin/nginx中。您系统的默认nginx启动配置需要更新以指向正确的位置。

2013-11-19 19:43:07