如何轻松实现高可用性?

我有一个网站,目前在一个DigitalOcean地区托pipe。 DO是好的,但是偶尔他们在一个地区有路由问题,网站也会崩溃。

这个堆栈非常简单 – 一个web服务器和一个redis实例。

我想在不同的地区设置故障转移,所以如果一个地区有问题,访问者将自动被redirect到故障转移,但我不知道如何做到这一点。

我最初的想法是使用负载平衡器,但由于负载平衡器将不得不生活在其中一个区域,所以它就会失败。

我们为我们的dns使用了cloudflare,如果为同一个域input两个IP地址,他们支持一个基本的循环系统,但是我希望所有的stream量都被定向到主节点,除非它不可用。

设置这个最简单的方法是什么?

有很多方法来设置高可用性。 使用haproxy是非常好的,因为nginx上游服务器,….也在ec2上,elb适用于http和https

我个人最喜欢的,dns round roubin到十几个haproxies,然后分配负载到数百和/或数千台二级服务器。 第二层应该在数百个nginx节点前caching,如清漆,然后有几千个php-fpm池成员

至less这是大男孩如何做到这一点