注意:这是我以前关于DNS故障转移问题的后续。
目标:让客户的networking浏览器select下一个可用的服务器,如果一个人立即closures。
我读过的地方是,多个Alogging(虽然不是最好的解决scheme)是基于HTTP /浏览器应用程序的唯一“即时故障转移”解决scheme。
这是场景/例子:
我有两个服务器A和B,其中包含完全相同的内容。 服务器A的IP地址是1.1.1.1和1.1.1.2服务器B的IP地址是2.2.2.1和2.2.2.2我有一个在Godaddy注册的域名。 如果我想利用DNS循环,哪种方法最好?
方法1:我是否像这样在Godaddy中设置我的名称服务器条目?
方法2:或者让Godaddy作为我的域名服务器,然后添加一条logging:
我的问题是,DNS循环会使用这两种方法吗? 如果不是,那么实现这个目标的最好方法是什么?
目标:让客户的networking浏览器select下一个可用的服务器,如果一个人立即closures。
这通常是通过引入一个称为负载平衡器的第三台服务器来完成的。 负载均衡器:
负载均衡器本身可以通过使用2个负载均衡器(LB)(即至less4个服务器(2个LB,2个Web应用服务器))来高度可用。 但是,许多小型商店只运行一个负载均衡器,因为它们是相对较简单的系统,而且往往非常可靠。
方法1:我是否像这样在Godaddy中设置我的名称服务器条目? 1. ns1.serverA.com 2. ns2.serverA.com 3. ns1.serverB.com 4. ns2.serverB.com
绝对不。 名称服务器仅用于parsing Web服务器的IP地址 。 保持域的名称服务器到您的注册商/ DNS主机(GoDaddy)默认。
方法2:或者让Godaddy作为我的域名服务器,并添加如此的A Records:1. A @ 1.1.1.1 2. A @ 1.1.1.2 3. A @ 2.2.2.1 4. A @ 2.2.2.2
当使用DNS Round Robin(DNS RR)作为高端故障转移/高可用性设置的一部分时,DNS RR 指向的IP地址具有高可用性。 换句话说,每个IP地址是由2个设备处理的虚拟IP。 作为一个纯粹的高可用性解决scheme,如果没有高可用性的服务器IP,DNS RR 不能很好地工作 。 基本的问题是,一些客户可能会继续使用“死”的IP地址 ,你依靠客户做'正确的事情',并不是所有的客户都这样做。 使用真正的HTTP负载平衡器更好。
也就是说,许多小型网站使用DNS RR进行负载分配只有很好的结果。 这是所有关于你的期望我猜。
在DNS RR情况下,每个物理服务器拥有2个IP地址不会给您带来任何影响,只会增加复杂性。 所以,只需使用一个IP为每个服务器,在您的符号:
A @ 1.1.1.1 A @ 2.2.2.1
你通常会去“logging”的方法。 您也可以控制某些ICANN注册服务机构在NSlogging上可能忽略的Alogging中的TTL。
Round Robin DNS非常棒,但要注意一些浏览器(比如较老的IE)可以cachinglogging的时间太长,所以如果你的一个Web服务器出现故障,你从已发布的DNS中删除IP,那么你仍然可能会有一些访问者访问该IP (一个相当小的百分比,但足以得到一两个投诉)。 尽pipe负载平衡很好。
你描述的方法1打破了DNS,并没有提供故障转移。 DNSlogging也应该有一个授权来源 – 不能有两个冲突的权威来源(但是可以有多个同一个conf的副本)。
我不认为你的build议会完全实现你所希望的。
您logging的Alogging方法将提供所有这些IP地址以适合从中获取您的内容,因此用户的networking浏览器可以自由使用任何 IP地址。 如果被选中的特定服务器确实处于closures状态,那么用户的浏览器可能会select尝试不同的IP地址,但不会立即接近任何地方。
我也很怀疑为单个服务器列出多个IP。 假设服务器Aclosures了, 如果我的浏览器试图连接到1.1.1.1 ,然后(超时后)尝试连接到1.1.1.2那么我会等待更长的时间内容到达。
如果你真的想要在networking服务器之间进行可靠的快速故障转移,你可能会想看看HAProxy 。
编辑:具体来说,你会想要一对运行HAProxy与他们之间共享“浮动”的IP地址的框。 然后在这些盒子上运行类似“ 心跳 ”的东西,这样如果其中一个失败了,另一个将会检测到它并自动接pipe“浮动”的IP地址。 最后,你把你的一个Alogging指向浮动IP(它总是指向HAProxy实例中的一个)。
您可能会发现堆栈溢出networkingconfiguration有趣/信息。