当我连接并发送一些套接字到我的Linux,VPC内的node.js服务器和负载均衡器后面时,我得到一个异常长的延迟,然后是WebSocket connection to [address] failed: Connection closed before receiving a handshake response
然后几秒钟后我得到了我发送的所有插座的响应,然后一切正常。没有长时间的延误。
但就这个初始连接而言,这是一个可怕的等待,然后是这个错误消息。一切仍然有效,只需要一点点。
我正在使用Amazon Web Service EC2负载均衡器和AWS VPC
当我直接访问同一台服务器时,我没有延迟。
只有负载均衡器时我无法连接到我的服务器。 只有VPC时我无法连接到我的服务器,所以我无法将问题隔离到我的负载均衡器或VPC。
发生了什么?
正确答案是迈克尔的评论,我认为这是有帮助的。 将此作为答案格式的第一个人得分。
答案 0 :(得分:2)
从Load Balancer到服务器的连接健康状况取决于您设置运行状况检查的方式。
尝试并以不同方式进行设置。
例如
使用基于TCP的运行状况检查而不是基于HTTP的运行状况检查,并更改阈值。
如果您发现某些不同的行为,您就会知道健康检查是个问题。
答案 1 :(得分:1)
如果没有调试,很难确切知道,但请注意使用Elastic Load Balancer for Web Sockets存在问题。它们解析HTTP请求(除非在TCP模式下)并且它们具有60秒的空闲连接超时。