当apache服务失败时,将心跳转移到失败转移

我目前已经在Ubuntu的linux服务器上很好地设置了心跳,所以如果没有检测到心跳服务(无论是因为服务器closures还是只是心跳服务停止),它都会在辅助服务器上运行我的网站。

替代文字

所以我们从初始状态开始,工作服务器上的apache在临时状态下死掉,然后辅助服务器上的apache启动到最终状态。 目前如果Apache失败,但心跳不转换不会发生。 有谁知道如何做到这一点?

使用heartbeat 1.x监视守护进程的一个潜在解决scheme是我在生产中成功地使用了一个perl守护进程,该守护进程每隔一段时间轮询一次进程列表,如果没有看到进程名称,它将启动心跳待命。 你可以configurationmon来复制这个function。

Heartbeat 2.x具有对此function的本地支持, ocf_heartbeat_apache资源代理将允许您监视该进程。

还有一点值得注意的是,心跳是在维修模式,而Corosync应该是成功的。

在可能的情况下,我避免使用Web或应用程序服务器来实现高可用性的主动/被动方法。 浪费资源,横向扩展往往更加困难。 在某些情况下,这是不可避免的,但对于Apache来说,情况很less。

您的Web应用程序需要共享会话状态,这通常通过将会话存储在数据库或内存中来完成。 此时,您可以使用诸如LVS或Nginx的解决scheme来负载平衡所有传入的连接。 当然,您的代理和负载平衡解决scheme需要是多余的,以防止单点故障。 你也可以使用心跳。