我正在寻找与dynamic故障切换相结合的延迟(或地理位置)负载平衡解决scheme。
该基础设施基于OVH的3名专职服务器。 服务器位于3个不同的地理位置(加拿大,法国和澳大利亚)。
我正在努力实现的东西很less:
问题的小例证
我只对HTTPstream量感兴趣。 每个请求必须去服务器,没有什么可以被caching,因为响应是非常dynamic的。
我已经看过AWS Route 53,这很棒,但它只是一个DNS,所以它不会解决故障转移的一部分。
OVH具有IP负载平衡,但是我不能使它工作,我没有find解决问题的选项1。
我对包括使用第三方服务在内的任何提示或解决scheme感兴趣。
我也在考虑在每个位置(靠近主服务器的每一个)购买3台VPS服务器,这些服务器将充当网关。 在这样的解决scheme中,我可以使用AWS Route 53为VPS服务器提供延迟负载平衡,服务器将处理故障转移。 根据定义,它们将在100%的时间内处于活动状态,而主服务器将在不停机的情况下进行重新启动。
要更新我的答案 – 所有这些都是可选的。 可以closurescaching以允许dynamic响应。 只有在需要时才能通过HTTP提供stream量。
我当然喜欢的一个解决scheme是Cloudflare。 它几乎可以解决所有的问题,假设您使用的是HTTP / HTTPS,并且没有其他协议在原始问题中没有提到。
处理基于地理定位的内容服务 –
CF基本上可以通过stream量pipe理器引导您通过它发送的stream量。 这将find您的原始服务器之一的最快捷的路线,并保持这一点。 如果某些事情失败了,你需要从不同的位置服务内容–CF也可以在一个位置对多个服务器进行负载平衡,或者从下一个最近的服务器进行服务。
解决故障转移方面 –
如前所述的CF做了一个惊人的工作,在ping你的原始服务器进行状态更新,并确保它们适合用途。 但为了扩大这一点,CF还会caching通过其代理的某些types的资产。 这是他们的“始终在线”function,即使原始服务器处于脱机状态,也会尝试对该内容进行服务。
解决服务器更新 –
就我个人而言,我围绕着一个Docker集装箱式devise来devise我的所有环境,这使我可以进行“滚动更新”。 通过这种方式,我可以更新,销毁,在我的应用程序映像中进行任何理由的操作,并知道它将以安全的方式传播。 这显然也可以在需要的时候回滚。 但是,如果这是不可能的,那么CF可以允许您在该地理位置启动一个辅助虚拟机来更新映像,并有效地热交换DNS。
处理HTTP重写 – > HTTPS –
CF还允许将规则应用于stream量。 其中之一意味着你可以用一个301 HTTP响应来重写HTTPS的所有HTTPstream量(可以configuration,但是你想要的)。
(这确实假设你所有的DNSlogging都通过了CF的DNS,并且是'橙色阴云')。
还有一些有用的资源指向你正确的方向 – Cloudflarestream量pipe理器