Distingui prima un handshake fallito da una connessione che si apre e poi si chiude. I due sintomi portano a controlli differenti.
Fai arrivare all'applicazione la richiesta di upgrade
Per una rotta WebSocket dedicata, inserisci questo dentro server:
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";
}
usa esplicitamente HTTP/1.1 verso il backend. inoltra il cambio di protocollo richiesto dal client. comunica al backend che questa connessione richiede quel cambio. Questi header richiedono inoltro esplicito perché i proxy non passano semplicemente ogni header specifico della connessione.
