我正在遇到一个奇怪的与[[nginx + websocket相关的问题,因此想问问你们是否可以让我知道是什么导致了此错误,以及是否有任何方法可以解决它。
我在基于[[nginx + php-fpm的服务器上运行了一个聊天室网站(https),并且聊天室脚本利用websocket(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; }
如果你们中的任何一个可以阐明这个问题并帮助我解决,我将不胜感激。