먼저 연결 handshake 실패와, 열린 뒤 나중에 닫히는 연결을 구별합니다. 두 증상은 확인할 항목이 다릅니다.
애플리케이션이 upgrade 요청을 받게 하기
전용 WebSocket 라우트에 대해 다음을 server 안에 둡니다.
nginx
location /socket/ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
proxy_http_version은 백엔드 방향으로 HTTP/1.1을 명시적으로 사용합니다. Upgrade는 클라이언트가 요청한 프로토콜 변경을 전달합니다. 은 이 연결이 해당 변경을 요청한다는 것을 백엔드에 알립니다. 프록시가 모든 연결 전용 헤더를 단순 전달하는 것은 아니므로 이 헤더들은 명시적으로 전달해야 합니다.
