Websockets nginx反向代理+ Cloudflare

时间:2016-03-12 13:24:10

标签: node.js nginx proxy

我正在使用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 出了什么问题?谢谢

1 个答案:

答案 0 :(得分:0)

编辑:正如Nickoplier所说,CloudFlare现在也支持免费计划的WebSockets。请注意,免费计划中的WebSocket支持仅适用于低容量网站(根据support article)。

这不起作用,因为目前CloudFlare仅支持其业务和企业客户的WebSockets(处于测试阶段)。有关详细信息,请参阅support article

解决此问题的方法之一是创建一个不支持CloudFlare的新子域。例如ws.xxxx.xxxx.tld,并指出你的websockets客户端。