【问题标题】:WebSocket over SSL: Cloudflare基于 SSL 的 WebSocket:Cloudflare
【发布时间】:2014-12-11 07:36:41
【问题描述】:

我在 cloudflare 后面有一个网站。我需要在不关闭 cloudflare 支持的情况下通过 SSL 启用 websockets。我有一个 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。

【问题讨论】:

    标签: node.js nginx websocket cloudflare


    【解决方案1】:

    如果您尝试通过 CloudFlare 的网络访问它,您需要在您的域上明确启用 Web 套接字,然后它们才能工作 - 无论端口如何。例如,即使端口可以通过我们的网络,这并不意味着您的域将启用或访问 Web 套接字。

    您可以尝试联系我们的支持团队以请求例外,看看他们是否可以为您的域启用它,但通常这仍然只在企业和企业级别可用。

    免责声明:我在 CloudFlare 工作。

    【讨论】:

    • 谢谢!我要求 CloudFlare 启用网络套接字,但由于我们有一个专业帐户,我们没有获得该功能。我不得不依靠 CloudFlare 之外的一个单独的实例来路由 web-socket 流量。我们担心会受到 DDOS 攻击,但添加了一些代码来阻止潜在威胁。尽管如此,这并不是我们希望的最佳解决方案。
    • @AnshumanBis 目前没有任何承诺,但我们可能会在 2015 年更广泛地开放 websocket。
    • 如何防止对 WebSocket 服务器的 DDOS 攻击?
    • 我使用 Nginx 和一些设置来限制连接。
    • fwiw websockets 现在可用于所有级别的帐户support.cloudflare.com/hc/en-us/articles/…
    猜你喜欢
    • 2013-03-01
    • 2016-03-31
    • 2014-03-28
    • 2011-02-10
    • 2019-07-04
    • 2016-02-20
    • 1970-01-01
    • 2017-02-28
    • 2011-12-23
    相关资源
    最近更新 更多