我正在尝试在 Google Compute Engine 上设置 XMPP 服务器。我目前正在玩韵律我对服务器的首选部署策略是拥有不可变的基础设施,因此我倾向于构建我想要的服务器映像(使用打包机),创建一个实例模板,并创建该实例模板的托管实例组,并将目标大小设置为 1。这样做的好处是确保我始终至少有一台服务器处于活动状态并响应请求,并在出现问题时自动重新创建服务器。但这也意味着我需要让所有请求都经过负载均衡器,因为服务器 IP 不稳定。
对于 HTTP/S 来说这不是问题,因为 HTTP/S 负载平衡器工作得很好。对于 TCP 来说,这被证明是一个问题。网络负载平衡需要一个实例列表来平衡,这意味着当我的实例被销毁并重新创建时,负载均衡器就过时了。TCP 代理负载平衡和SSL 代理负载平衡没有这个问题,但它们可以使用的端口集受到限制。奇怪的是,5222(客户端到服务器 XMPP 流量的保留端口)在这个白名单端口组中,但 5269(服务器到服务器 XMPP 流量的保留端口)不在这个白名单中。我不确定为什么 Google 会允许客户端到服务器的流量,但不允许服务器到服务器的流量。
我想我的问题是我可以得到以下任何一个答案:
- 谷歌实际上在他们的 SSL/TCP 代理负载均衡器上阻止端口 5269?
- 如果是,为什么?他们允许 5222,但我认为如果没有 5269,它实际上就没用了?
- XMPP 是否确实需要端口 5269,或者服务器是否会回退到 5222?
- 我是否遗漏了一些将端口 5269 上的 TCP 流量传送到实例组中的实例的策略?