我们是一家小型初创公司。在我们目前的设置中,我们在远程位置有一个专用服务器。我们的网站和应用程序托管在该服务器上。网站和一些应用程序使用 PHP,其余的是使用 Tomcat 和 JBoss 的 Java 应用程序。我们的数据库服务器是 mysql。我们使用复制将 mysql 数据备份到本地服务器。显然,在这种设置下,事情可能会以多种方式出错,而且确实如此。我们最近遇到了一些严重的停机问题和其他令人担忧的事情。
我们考虑的新设置如下。
1) 购买与当前服务器配置相同的新服务器。将其设置为与当前服务器类似,并安装所有应用程序和软件
2)使用 BackupPC 对新服务器进行热备份。(仅同步经常更改的文件,如网站、php 应用程序、jboss 和 tomcat 应用程序)
3)在新服务器中运行具有半同步复制的 mysql 从属服务器
4)在指向主服务器的单独服务器中运行 apache/nginx/lighttpd 作为反向代理。
5)在本地服务器继续运行一个从属
如果发生停机,我们可以将反向代理指向辅助服务器。我们不想进行自动故障转移,因为我们必须确保在指向辅助服务器之前,它已完全同步。
上述方法的优缺点是什么?或者如何改进?我知道反向代理将是一个 SPOF。此时我们正在寻找一种经济有效的解决方案。反向代理可以是价格低廉且配置相当不错的服务器吗?
我只是看了各种文章才整理出来的,可能有些理解不对,欢迎指正。
答案1
一个可以消除 SPOF 和反向代理需求的廉价而简单的解决方案是将您的 DNS 设置为低 TTL 值(例如 60 秒),并在您想要切换服务器时只需更改 IP 地址即可。
如果您使用支持动态 DNS 的 DNS 提供商(或 Amazon Route 53),您甚至可以编写一个小脚本来自动执行该过程。