node.js – 基于SSL的WebSocket:Cloudflare

我在cloudflare后面有一个网站.我需要通过SSL启用websockets而不关闭cloudflare支持.我有一个PRO计划,因此不会获得新的websocket支持.我正在使用Nginx代理SSL连接到节点服务器上运行的Web套接字.现在,我读到某个地方,cloudflare可以使用已批准的ports支持websockets.因此,我使用8443作为Nginx端口,使用另一个端口作为节点服务器.使用wscat它会返回200错误.

$wscat -c wss://xyz.com:8443
error: Error: unexpected server response (200)

我知道websocket期待101代码.但是,如果我访问https://xyz.com:8443,我可以看到节点服务器显示的页面告诉我代理正在运行.此外,一旦我关闭cloudflare支持,websocket就开始工作了.有任何线索让这个工作.我知道我可以创建一个子域但我更喜欢在cloudflare后面运行websocket.

解决方法:

如果您尝试通过CloudFlare的网络访问此网站,则无论端口如何,您都需要在域名之前明确启用网络套接字.同样,即使端口可以通过我们的网络,也不会自动意味着您的域上将启用或访问Web套接字.

您可以尝试与我们的支持团队联系,以请求例外以查看他们是否可以为您的域启用该例外,但通常只能在业务和企业级别使用.

免责声明:我在CloudFlare工作.

上一篇:php – Cloudflare将子域重定向到目录


下一篇:NGINX配置获取CloudFlare 下的访客真实IP并记录到日志