Je viens d’être confronté au même problème, erreur 426 demande d’upgrade.
J’ai donc mis à jour toute ma machine… Nan, je déconne, ne faites pas ça !
En fait un reverse proxy qui doit rediriger le protocole websocket utilisé par WS2P doit ajouter des instructions dans l’entête des requêtes adressées à l’application.
En fait, le protocole websocket est géré comme une upgrade du protocole http. Le client dit à nginx : il faut que tu upgrades http en websocket.
Mais nginx doit alors à son tour signaler dans la requête à l’application qu’il faut faire un upgrade de http vers websocket.
Pour cela, il faut ajouter ce bloc d’instruction dans la définition de la redirection :
location /path {
# required for websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:21901;
}
Pour les anglophones, le sujet est très bien expliqué dans cet article :