Назад | Перейти на главную страницу

Ошибка подтверждения связи с ошибкой соединения WebSocket, код ответа: 502

Я столкнулся со странной проблемой, связанной с nginx + websocket, поэтому хотел спросить, может ли кто-нибудь из вас дать мне представление о том, что вызывает эту ошибку, и есть ли способ ее исправить.

Я запускаю веб-сайт чата (https) на сервере на основе nginx + php-fpm, а сценарий чата использует для подключения веб-сокет (wss) и обратный прокси-сервер nginx, поэтому теперь проблема в том, что случайным образом разным пользователям он отправляет ошибку рукопожатия 502 и не позволяет им загружать чат. Вот ошибка:

WebSocket connection to 'wss://www.mydomain.com/chatserver/?xtoken:U3lzdGVt|3711|2|1|0|1569058371|8a41df869e3bef7e224f0873e3fed93df84ab90cbc5c4f01665e9a5886f64887' failed: Error during WebSocket handshake: Unexpected response code: 502
initws @ VM28:26
onload @ blabws.php:23
VM28:30 Event {isTrusted: true, type: "error", target: WebSocket, currentTarget: WebSocket, eventPhase: 2, …}
VM52:1 WebSocket is already in CLOSING or CLOSED state.
(anonymous) @ VM52:1
setInterval (async)
(anonymous) @ blabws.php:435
VM52:1 WebSocket is already in CLOSING or CLOSED state.

После обновления страницы пару раз или смены ip / internet они могут войти в чат, и снова это происходит с ними в случайное время через несколько часов или день или два.

Моя конфигурация nginx для этого обратного прокси:

location /chatserver/ {
proxy_pass http://localhost:9878;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
}   

Я буду очень признателен, если кто-нибудь из вас сможет пролить свет на эту проблему и помочь мне ее исправить.