Home  >  Article  >  Database  >  drizzle lua 数据传递(ngx.location.capture)_MySQL

drizzle lua 数据传递(ngx.location.capture)_MySQL

WBOY
WBOYOriginal
2016-06-01 13:38:351232browse

bitsCN.com

经常使用PHP开发的WEB开发人员,刚刚转到NGINX+DRIZZLE开发环境,开始估计会遇到LUA如何获取DRIZZLE+MYSQL返回数据的问题,下面给出我的一些经验。

首先修改NGINX的配置文件


location /mysql {
set $name $1;
set_quote_sql_str $quote_name $name;
set $sql "SELECT * FROM crawl WHERE id=3";
drizzle_query $sql; drizzle_pass mysql; rds_json on;
}

curl localhost:8080/mysql 返回的结果:[{"id":3,"url_id":"100","url_type":"item","date":"0000-00-00","url":"http://item.taobao.com/item.htm?id=100","status":0,"failures":0,"start_date":0,"unit_id":54848}]

然后在后面加入:

        location /lua{            content_by_lua '                local res = ngx.location.capture("/mysql")                ngx.say("data: " .. res.body)            ';          } 

curl localhost:8080/lua 返回的结果:data: [{"id":3,"url_id":"100","url_type":"item","date":"0000-00-00","url":"http://item.taobao.com/item.htm?id=100","status":0,"failures":0,"start_date":0,"unit_id":54848}]

最后大家也就都能猜到了

        location /luafile {            content_by_lua_file /usr/local/openresty/nginx/html/test.lua;        }

test.lua

local res = ngx.location.capture("/mysql")ngx.say("data: " .. res.body)

搞定:curl localhost:8080/luafile 返回的结果:data: [{"id":3,"url_id":"100","url_type":"item","date":"0000-00-00","url":"http://item.taobao.com/item.htm?id=100","status":0,"failures":0,"start_date":0,"unit_id":54848}]

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn