首先,如果之前已经回答了这个问题,我很抱歉,但我一直在寻找一段时间,似乎无法find(或理解)一个答案。
所以,我有两个物理服务器和centOS。 其中1个已经托pipe了一些网站和数据库。 现在我想通过使用故障转移的负载平衡来创build冗余环境。 所以基本上,我想让两台服务器都运行,通过当时打开的连接来分割工作,当其中一台崩溃时让另一台服务器接pipe所有工作。
我遇到的每个例子都有2个web服务器前面的haproxy的第三台服务器。 但只有2台服务器(例如在两个Web服务器上安装haproxy)是可能的吗? 还是有更好的方法来处理这个问题?
提前致谢。
有多种解决scheme。
最简单的设置可能是这样的:
使用DRBD在服务器之间同步网站数据
在两台服务器之间运行MySQL主从设置。 这将意味着所有的数据库连接都将转到一台服务器上。 如果那个失败,你必须切换到奴隶(并将其提升为主)。 你可以自动化这个。 主 – 主复制可能工作量太大,除非您也是所有网站上的开发人员。
做负载均衡的DNS负载平衡(对于大多数新的浏览器都能正常工作,它会继续尝试,直到find一个有效的IP)。 另一种解决scheme是使用HAProxy。 在这种情况下,一台服务器也将充当两台服务器的负载均衡器。 您可以使用keepalived自动切换到第二个HAProxy实例(在服务器2上)当主要closures。
我不确定我会打电话给DRBD轻松,很棒也许不容易。 正如Jeroen所build议的:循环法DNS或HAProxy可用于将stream量路由到两个节点,但是,您的实际问题是您的数据库只在一个地方。 所以击中两台服务器可能不是你想要的。 DRBD将确保存储在服务器之间复制(解决问题)。 或者标准体系结构是在N + 1 Web服务器前面的2 * HAProxy,数据库位于一个单独的高度可用的平台上(也许主/从可能共享存储可能是DRBD或可能是存储)。