我有一个网站,目前托管在单个 DigitalOcean 区域。DO 很棒,但偶尔他们会在某个区域出现路由问题,导致网站瘫痪。
该堆栈非常简单 - 一个 Web 服务器和一个 Redis 实例。
我想在不同的地区设置故障转移,这样如果一个地区出现问题,访问者将自动重定向到故障转移,但我不确定如何做到这一点。
我最初的想法是使用负载均衡器,但由于负载均衡器必须位于其中一个区域,因此这失去了意义。
我们使用 cloudflare 作为我们的 DNS,如果您为同一个域输入两个 IP 地址,它们支持基本的循环系统,但我希望所有流量都被定向到主节点,除非它不可用。
进行此项设置的最简单的方法是什么?
答案1
有多种方法可以设置高可用性。使用 haproxy 很棒,nginx 上游服务器也是如此……在 ec2 上,elb 也适用于 http 和 https
我个人最喜欢的是,dns 将 Roubin 路由到十几个 HAProxies,然后将负载分配到数百或数千个第二层服务器。第二层应该是缓存,就像 Varnish 一样,在数百个 Nginx 节点前面,然后有数千个 php-fpm 池成员
至少大人物们都是这么做的