CLB/NLB/ALB
都支持Connection Idle Timeout
当我们请求Load balancer时,它维护了两个连接,一个是客户端与LB之间的,另一个是LB和target之间的。当任意一个连接上面没有发送/接收
数据行为时,过了连接空闲时间(Connection idle timeout
)后,LB就会主动关掉连接:
默认CLB和ALB的Connection Idle Timeout
都是60秒,可以调长这个时间(ALB是1-4000秒)
对于NLB,它默认的TCP超时是350s,UDP是120s,而且不能做修改
对于后端服务,建议在EC2服务上开启HTTP keep-alive,这样LB可以复用后端的连接(直到keep-alive超时)。
另外,建议后端应用的超时时间大于LB的超时时间,否则应用提前关闭TCP连接后,LB还会发送请求到应用,这种情况下就会造成502错误。
如果我们的应用在后端进行耗时的操作,比如上传大文件,可以在上传完成前,不时的给LB发送下数据,防止超时。