我已经能够成功将 nginx 设置为负载均衡器来代理 websocket 请求(使用 SSL),但是,我认为我真的需要能够重定向它们。我想要的配置是让 nginx 位于不同机器上的 websocket 服务器场前面,并以循环方式重定向(而不是代理)到它们。我不想使用代理,因为这样 nginx 最终只会在负载均衡器上打开两个并发连接(入站 + 出站)。因此,即使我的 websocket 场可以在每台机器上处理许多并发连接,但并发连接的总数也受到负载均衡器的限制。我希望客户端最终直接连接到 websocket 服务器,而不通过 nginx。
我查找了其他人这样做的示例,但发现没有太多相关内容。我认为我想要使用的指令是 proxy_redirect,但如上所述,文档和其他帖子中关于如何使用它的描述很少。
我是不是想把方枘圆凿?到目前为止,我尝试过的方法都导致 404 错误。如果可能的话,有人可以推荐一种设置,或者我可以在哪里找到更多信息?如果这是一个模棱两可/愚蠢/毫无意义的问题,请随时告诉我原因!我不会因为上网而受到伤害 - 只是想弄清楚如何扩展我的设置...
我正在考虑一种替代方法,即通过 js 提供 websocket 服务器 ip 地址。有人有这样的经验吗?Bueller...
答案1
这可能过于简单,但为什么不使用 DNS 负载平衡?即为同一主机提供多个 IP 地址,客户端将自动随机选择一个。