针对小型企业的高可用性架构

我们是一个小创业公司。 在我们目前的设置中,我们在远程位置有一个专用的服务器。 我们的网站和应用程序托pipe在该服务器上。 网站和一些应用程序在PHP中,其余的是使用Tomcat和JBoss的Java应用程序。 我们的数据库服务器是mysql。 我们使用复制备份mysql数据到我们的本地服务器。 很明显,在这种设置中可能会出现多种错误, 我们最近有一些严重的停机问题和其他恐慌。

我们想到的新设置如下。

1)购买与当前configuration相同的新服务器。 使用所有的应用程序和软件设置类似于当前的服务器

2)使用BackupPC进行热备份到新的服务器。 (只同步像网站,php应用程序,jboss和tomcat应用程序经常更改的文件)

3)使用半同步复制在新服务器上运行一个mysql slave

4)在指向主服务器的单独服务器中运行apache / nginx / lighttpd作为反向代理

5)继续在本地服务器上运行一个从站

在停机的情况下,我们可以将反向代理指向辅助服务器。 我们不希望自动执行故障转移,因为我们必须确保辅助服务器在指向它之前完全同步。

上述方法的优缺点是什么? 或者如何改进? 我知道反向代理将是一个SPOF。 在这一点上,我们正在寻找一个成本效益的解决scheme。 反向代理服务器是一个低configuration的服务器吗?

我只是通过阅读各种文章把它放在一起。 我的一些理解可能是错误的。 请随时纠正它们。

一个廉价和简单的解决scheme,将消除您的SPOF和需要一个反向代理将设置您的DNS低TTL值(例如60秒),只需更改IP地址,当你想切换服务器。

如果您使用具有dynamicDNS支持(或Amazon Route 53)的DNS提供程序,则甚至可以编写一个小脚本,甚至可以为您自动执行此过程。