我正在寻找一种将Apache设置为高可用性的方法。这样做的目的是让一个2+ Apache服务器集群服务于相同的网站。我可以使用循环DNS来设置每个服务器的IP地址,以便将每个请求随机发送到集群中的一个服务器(我现在还不太关心负载平衡,尽管这可能会在后面起作用)。
我已经设置并使用了多个Apache服务器(分布在多个物理服务器上),为网站提供服务,以及循环使用DNS,这很好。SQL数据库是在高可用性集群中使用MariaDB设置的,web数据(HTML、PHP脚本、图像、其他资产)存储在LizardFS中,会话也存储在共享位置。这一切都很好,直到集群中的一个服务器因任何原因而无法访问。然后,一定百分比的请求(大约是被击倒的服务器数量除以集群中的服务器总数)没有得到答复。以下是我考虑过的选择:
有一些进程可以监视web服务器的功能,并从DNS中删除任何下线服务器。这有两个问题:
系统,因为如果它们都检测到了一个问题,并且都做了相同的DNS更改,那么这就不会引起任何问题。
使访问的IP地址和循环DNS中的IP地址变为虚拟的,并在服务器崩溃的情况下将它们重新分配到从下到下的服务器上。例如,服务器1‘S VIP为192.168.0.101,服务器2’S VIP为192.168.0.102。如果server1下降,那么192.168.1.102将成为server2上的附加IP。这有两个问题:
那么,对如何处理这件事有什么想法吗?基本上,高可用性的圣杯:没有单一的故障点(无论是在服务器、负载均衡器还是数据中心),而且在切换时几乎没有停机时间。
发布于 2017-01-17 08:33:48
当我想要HA和负载共享时,我使用保留并使用两个VIP配置它。默认情况下,VIP1分配给server1,VIP2分配给server2。当任何服务器关闭时,另一个服务器将同时接收两个VIP。
Keepalived将通过监视另一个服务器来照顾HA。如果无法到达服务器或任何接口关闭,则会更改为FAULT状态。VIP将由其他服务器接收。要监视您的服务,可以使用track_script选项。
如果您想在另一个数据中心中添加另一个集群,您可以再添加两个服务器并执行相同的配置。现在,您可以使用DNS循环在数据中心之间加载共享通信量.在这种情况下不需要更新DNS。
https://serverfault.com/questions/826658
复制相似问题