ngx_lua中的協程調度(四)
ngx_lua中訪問多個第三方服務
ngx_lua中提供了ngx.socket API,可以方便的訪問第三方網絡服務。如下麵的代碼,通過get_response函數從兩個(或者更多)的源服務器獲取數據,再生成響應發給客戶端。
location / {
content_by_lua_block {
local get_response(host, port)
local sock = ngx.socket.tcp()
local ok, err = sock:connect(host, port)
if not ok then
return nil, err
end
local data, err = sock:receive()
if not data then
return nil, err
end
return data
end
local first = get_response("lua.org", 8080)
local second = get_response("nginx.org", 8080)
ngx.say(first .. second)
}
}
最後更新:2017-07-21 09:32:51