-
Websockets i problem z nginx
Miałem ostatnio problem z klientem który wykorzystuje protokół websocket. Przy próbie wywołania, dostawał błąd 400. Przypomnijmy, że websocket jest technologią, która zapewnia dwukierunkowy kanał komunikacji za pośrednictwem jednego gniazda TCP. Serwerem WWW był nginx, który działał jako proxy. Rozwiązaniem okazało się dodanie poniższego wpisu do pliku z vhostem:
location /ws {
proxy_pass adres_źródłowego_serwera_www;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}Oczywiście nie zapomnijcie o restarcie nginx-a 🙂
systemctl restart nginx
dla CentOS 7
service nginx restart
dla CentOS < 7