自己用c++代码写了一个对于客户端请求内容的解析模块(andsf.so),导出了如下的函数:
---------------------------------------------------------------------------------------------------------------
luaL_Reg regFun[] = {
{ "parseRequest", parseRequest },
{ "makeResponse", makeResponse },
{ NULL, NULL }
};
luaL_register(l, "AndsfReport", regFun);
-------------------------------------------------------------------------------------------------------------
在Lua脚本文件(report.lua)中代码如下:
-------------------------------------------------------------------------------------------------------------
-- import libs
require 'andsf'
-- main logic function
local function main()
local req = "test{a=b;c=d}"
local okey,message,request = AndsfReport.parseRequest(req)
if not okey then
ngx.say(message)
return
end
end
main()
-------------------------------------------------------------------------------------------------------------
nginx.conf 如下:
-------------------------------------------------------------------------------------------------------------
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location /report {
content_by_lua_file /usr/local/openresty/lualib/project/report.lua;
}
}
}
上述情况下,nginx每次重新启动,服务器都能响应客户端的请求,并放回期待的结果,
但是随后的客户端访问,页面都显示“500 Internal Server Error“,查看nginx的日志显示
”attempt to index global 'AndsfReport' (a nil value)" 错误。
有遇到相同的问题的吗?能帮忙看看问题出现在哪里吗?谢谢!