我正在使用NGINX
代理 node.js websockets server
我的子域名正在使用CloudFlare
服务。
但是当我连接到websocket服务器时,我有这个错误WebSocket connection to 'ws://xxxx.xxxx.tld/' failed: Error during WebSocket handshake: Unexpected response code: 200
PS:当我通过IP地址直接访问时,我没有遇到此错误:端口whitout NGINX反向代理。
这是我的NGINX
配置文件:
server {
listen 80;
server_name xxxx.xxxx.tld;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:89;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
有关信息,请使用最新版本的NGINX
出了什么问题?谢谢
答案 0 :(得分:0)
编辑:正如Nickoplier所说,CloudFlare现在也支持免费计划的WebSockets。请注意,免费计划中的WebSocket支持仅适用于低容量网站(根据support article)。
这不起作用,因为目前CloudFlare仅支持其业务和企业客户的WebSockets(处于测试阶段)。有关详细信息,请参阅support article。
解决此问题的方法之一是创建一个不支持CloudFlare的新子域。例如ws.xxxx.xxxx.tld,并指出你的websockets客户端。