如何在没有负载均衡器的情况下configuration备份服务器?

我有一台运行PHP,Apache和MySQL站点的CENTOS服务器。 我想创build一个可以执行以下操作的第二台服务器:

  1. 保持服务器1和服务器2之间的数据库同步(最好在交易发生时实时进行)。
  2. 如果服务器1上发生任何事情,可以在域级别(或其他方式)设置切换到第二台服务器?
  3. 避免使用第三负载平衡服务器?

我不想要第三个负载均衡器的原因是因为我不想处于负载均衡器本身出现故障的情况。 我只想依靠实际工作的解决scheme服务器。

这是可能的,什么是最简单的方法?

我最担心的是,由于传播,这不能在DNS级别上完成,所以我认为可能需要某种第三中介来确定通信量在哪里。

对于MySQL,使用复制来保持备份服务器与主服务器同步。 请参阅文档 ,并记住复制是asynchronous的,并且可能会在中等负载下滞后。

PHP和Apache是​​无状态的服务,不需要同步,除了它们的configuration。

如果您不需要负载平衡器,则可以使用检测信号来pipe理两台服务器之间的虚拟IP。 如果主服务器发生故障,辅助服务器将自行分配IP并继续提供stream量。 请注意,这将只监视两个心跳服务之间的心跳,而不是mysql / apache /等的运行状态。

什么会主持决定哪个服务器被使用的部分?

Web服务器客户端将连接到虚拟IP或parsing为该IP的主机名,所以stream量只会碰到拥有该vip的服务器,而另一台服务器只能处于待机状态。

configuration两台服务器上的PHP连接到本地主机上的MySQL,所以如果第一台服务器死亡,第二台服务器将假设IP并继续。 但请记住,定期的单向MySQL复制意味着,只要你开始写入从机,原来的主机将永远过时,需要重build。 您可以使用主 – 主复制或Percona XtraDB集群,但这些复制设置更复杂。