Handshake failed due to invalid Upgrade header: null
nginx 사이트에 따르면 원인은 다음과 같다.

즉, HTTP handshake시 Client는 Server로 WebSocket upgrade 요청을 보내는데, 이 요청은 프록시 서버에는 전달되지 않기 때문에,
명시적으로 header가 전달되어야 한다는 것.
hop-by-hop header는 좀 더 알아봐야 할 것 같다.
그래서 프록시 설정에 다음을 추가해야 한다.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

sudo nginx -s reload 후 다시 접속하면 웹소켓이 정상적으로 연결된다!호프-바이-호프 헤더는 단일 전송 수준 연결에 특정한 헤더로,
주로 HTTP/1.1에서 두 노드 간의 데이터를 관리하는 데 사용됩니다.
(예: 클라이언트-프록시 또는 프록시-프록시).
이러한 헤더는 전달되지 않도록 설계되었습니다.
https://book.hacktricks.xyz/v/kr/pentesting-web/abusing-hop-by-hop-headers
참고