configurationDNS为单个域的多个服务器提供页面

我有一些真正的高可用性的网页内容,需要在线24×7。 所以,而不是依靠单一的服务器,我想知道如果我可以处理多个服务器的名?

我可以为该域名设置不同的域名服务器吗? 请求会在这些服务器之间自动分配吗? 这是简单的吗?

你绝对不想使用循环赛DNS。 主要的问题是它不能平衡负载与任何智能,并没有考虑到客户端的DNScaching。 DNS只是不打算做负载平衡。 这项技术已被弃用,您真正想要使用的是服务器负载均衡器(无论是设备还是软件,但是如果您关心性能,我真的推荐使用一个设备)。

会发生什么呢?

  • 您设置了一个域名,并将其IP地址绑定到您的服务器负载平衡器(SLB)公共IP地址(称为VIP(虚拟IP地址))。
  • 当SLB接收到连接请求时,它将build立客户端与其自身之间的连接。 您的客户将在该连接内发送数据(在您的情况下是一个HTTP请求)。 一些SLB可以根据请求的types将数据streamredirect到特定的服务器,但是现在有点进步了。
  • 然后,SLB将在它自己和另一个服务器之间build立另一个连接。 它将从您指定的池中select服务器。 这是您指定所有服务器的IP地址的地方。 根据您定义的负载平衡规则,它将select一台服务器或另一台服务器。 一些可能的规则是循环(它会发送第一个用户到第一个服务器,第二个用户到第二个服务器,等等),Weight(如果服务器1比服务器2强两倍,它会发送更多的用户到第一个服务器),加载(如果服务器2比服务器3更加加载,SLB将优先发送到服务器3)等等。
  • 提高性能的常用方法是使用SLB在自己和客户端之间进行SSL终止,然后在自己和服务器之间使用明文。 这样你就不需要在你的服务器上使用SSL(节省大量的性能),大多数情况下都是好的,因为你在一个私人的,可信任的networking上。 同时仍然保持公众(互联网)networking所需的安全级别。

一些stream行的SLB供应商是F5(我个人最喜欢的,但这只是我,而且他们往往会更昂贵 – 出于好的原因,但这也是我的观点),RadWare,思科和瞻博networking。

你真的有四个select:

  1. 设置一个群集并将该域指向群集的虚拟IP
  2. 购买负载平衡设备
  3. 将一个集群置于负载平衡设备之后
  4. 使用所有不同服务器的IP设置多个logging(DNS Round Robbin)

DNS round robbin的问题是,如果你的一个服务器出现故障,每N个请求都会失败,因为试图使用该IP。

只有使用集群和/或负载均衡器才能为硬件故障提供真正的容错function,因为它们将停止将请求发送到停机服务器。

是的, 这是确保不同服务器 (Web服务器) 之间负载平衡的基本方法 …它被称为循环DNS

请注意 ,这是一种负载平衡技术,它不能保证任何故障切换​​对单个服务器故障,即如果服务器closures,并且您的客户端正在通过DNS获取其地址,它将在连接失败。 统计地重新加载它将与一个工作的服务器有连接,但这不是一个干净的解决scheme。

select负载均衡解决scheme时要小心的是您的网站是否需要处理会话。 如果是这种情况,请确保您使用的负载均衡技术不会为给定的客户端随机select服务器,否则他们可能会因为每次被redirect到不同的服务器而丢失网站上的会话。