大家好!
我使用lua-resty-http写了一个http客户端并设置keep alive, 当求情的目标地址与本机网络状况良好的情况(ping 时间在20ms以内)怎么会出现“lua tcp socket connect timed out” 和 “lua tcp socket read timed out”等错误呢?
源码:
local httpc = http.new()
httpc:set_timeout(5000)
local response, err = httpc:connect(host, port or 80)
if err then
ngx.log(ngx.ERR, err)
end
response, err = httpc:request(option)
if not response then
ngx.log(ngx.ERR, err)
end
ngx.status = response.status
-- Filter out hop-by-hop headeres
for k,v in pairs(response.headers) do
if not HOP_BY_HOP_HEADERS[string.lower(k)] then
ngx.header[k] = v
end
end
local reader = response.body_reader
repeat
local chunk, err = reader(8192)
if err then
ngx.log(ngx.ERR, err)
break
end
if chunk then
ngx.print(chunk)
end
until not chunk
local ok, err = httpc:set_keepalive(keepalive or 90000, poolsize or 24)
if not ok then
ngx.log(ngx.ERR, "failed to set keepalive: ", err)
return nil
end