1

연결할 때 내 리눅스에 어떤 소켓을 보내 WebSocket connection to [address] failed: Connection closed before receiving a handshake response웹 소켓은

다음에하는 VPC 내부와 나는 비정상적으로 긴 지연을 얻을 부하 분산 장치 뒤에 서버를 Node.js를 그리고 나서 몇 초 후에 내가 보낸 모든 소켓에 대한 응답을 얻습니다. 그러면 모든 것이 잘 작동합니다. 지연이 없습니다.

이 초기 연결시에는 끔찍한 대기 시간이 뒤 따르고이 오류 메시지가 표시됩니다. 모든 것은 여전히 ​​작동하지만 조금만 걸립니다.

나는 아마존 웹 서비스 EC2로드 밸런서를 사용하여 AWS VPC의 내가 직접 동일한 서버에 액세스하고있어

하고있어, 나는 더 지연을 얻을 수 없습니다.

부하 분산 장치 만있을 때 서버에 연결할 수 없습니다. VPC가있을 때 서버에 연결할 수 없어서 부하 분산 장치 또는 VPC에만 문제를 격리 할 수 ​​없습니다.

무슨 일 이니?

정답은 제가 도움이되었다고 표시 한 마이클의 의견이었습니다. 답변 형식에 넣은 첫 번째 사람이 점수를 얻습니다.

+1

ELS는 TCP 또는 HTTP 모드로 연결되어 있습니까? –

+0

@ Michael-sqlbot 모드를 어떻게 확인합니까? – Houseman

+0

저는 HealthCheck가 어떻게 설정되어 있는지 묻습니다. HTTP 기반 또는 TCP 기반 일 수 있습니다. –

답변

2

Load Balancer에서 서버로의 연결 상태는 Health Check가 설정되는 방식에 따라 결정됩니다.

다른 방식으로 시도하고 설정하십시오.

예를 들어

사용은 TCP 기반의 상태 점검이 아니라 하나의 기준으로 HTTP 및 임계 값을 변경합니다.

다른 동작이 나타나는 경우 상태 검사가 문제임을 알 수 있습니다.

1

디버깅없이 정확히 알기는 어렵지만 웹 소켓 용 Elastic Load Balancer 사용시 문제가 있음을 유의하십시오. 그들은 HTTP 요청을 구문 분석 (TCP 모드가 아닌 경우)하고 유휴 연결 시간 초과가 60 초입니다.

관련 문제