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)
}
}
时间: 2024-12-02 18:24:05