lua_code_cache on; server { location /Api/GetNormalCookie { content_by_lua_block { ngx.header["Content-Type"] = "application/json" local cjson = require "cjson" -- ngx.say(cjson.encode({resultCode=0})) local mysql = require "resty.mysql" local db, err = mysql:new() if not db then ngx.say("failed to instantiate mysql: ", err) return end -- 连接到数据库 local ok, err, errno, sqlstate = db:connect{ host = "106", port = 3306, database = "", user = "", password = "", charset = "utf8", max_packet_size = 1024 * 1024, timeout = 1000 } if not ok then ngx.say(cjson.encode({error = "failed to connect to mysql: " .. tostring(err)})) return end local arg_status = tonumber(ngx.var.arg_status) -- 执行数据库查询 local res, err, errno, sqlstate = db:query("select id,cookie,last_read_time time from bas_cookie where status = " .. arg_status .. " order by last_read_time asc limit 0,1", 10) if not res or not res[1] then ngx.say(cjson.encode({resultCode = 0})) return end res[1].id = tonumber(res[1].id) local update_res, update_err, update_errno, update_sqlstate = db:query( "UPDATE bas_cookie SET last_read_time = now() WHERE id = " .. res[1].id) if not update_res then ngx.say("Update failed: ", update_err) return end -- 关闭数据库连接 local ok, err = db:set_keepalive(10000, 50) if not ok then ngx.say(cjson.encode({error = "failed to set keepalive: " .. tostring(err)})) return end -- 返回JSON结果 ngx.say(cjson.encode({resultCode = 0, data = res[1]})) } } }