指向同一个域的多个 A 记录似乎几乎专门用于将 DNS 轮询作为一种廉价的负载平衡技术来实现。
针对 DNS RR 的常见警告是它不利于高可用性。当 1 个 IP 出现故障时,客户端将继续使用它几分钟。
通常建议使用负载平衡器作为更好的选择。
这两种说法都不完全正确:
当流量为 HTTP 时,大多数 HTML 浏览器能够自动尝试下一条 A 记录(如果前一条记录出现故障),而无需进行新的 DNS 查找。阅读此章节3.1和这里。
当涉及多个数据中心时,DNS RR 是在它们之间分配流量的唯一选择。
那么,对于多个数据中心和 HTTP 流量,使用 DNS RR 是确保在一个数据中心出现故障时立即进行故障转移的唯一方法吗?
谢谢,
华伦天奴
编辑:
编辑2:
假设我有给定域的 2 个 IP(循环 DNS)。
如果一个 IP 变得无响应,客户端是否会尝试连接到另一个 IP?或者他们将无法与域建立通信?
domain-name-system high-availability redundancy fault-tolerance round-robin
作为他非常受欢迎的问题的后续问题:为什么不建议使用 DNS 故障转移?,我认为由于缓存,DNS 故障转移不是 100% 可靠的。
然而,投票最高的答案并没有真正讨论在两个不同数据中心之间实现故障转移的更好解决方案是什么。提出的唯一解决方案是本地负载平衡(单个数据中心)。
所以我的问题很简单,跨数据中心故障转移的真正解决方案是什么?
domain-name-system disaster-recovery failover high-availability datacenter
我必须到地点(办公室和服务提供商)。一个 DNS(绑定)为我们的域提供权威服务,以及一个服务提供商网络服务器,我们的公司网站位于私人服务器上。
所以..
现在我们正计划将我们在 ISP 上的服务器升级到新的服务器,我想利用这种情况来改善我们的服务。
是否可以将高可用性 apache/mysql/php 安装到不同的位置?
我将在同一台新服务器上安装一个绑定从属服务器,所以我希望它能让事情变得更容易,但我需要一些关于如何使用它的提示和技巧。
谢谢。
我正在尝试在生产站点上设置 Traefik,但我正在努力解决一些高可用性问题。我认为我们在 Traefik 集群前面仍然需要一个反向代理。以下是我考虑过的潜在设置,以及为什么似乎需要反向代理:
设置 DNS A 记录以指向每个 Traefik 节点以进行负载平衡和故障转移。
根据包括this SO question和this SF question在内的多个站点,不鼓励这种做法。
由于 DNS 缓存和 TTL 问题,即使使用像 DNSMadeEasy 这样的服务似乎也不受欢迎。
将一条 DNS 记录指向运行 Traefik 的节点之一。
该节点成为 SPOF。我的节点在 CoreOS 上运行,每次更新后都会重新启动,因此我们可以保证每周有几分钟的停机时间。
我们可以在预计停机时将 DNS 记录移动到备用节点。这将是手动管理的痛苦。我可以设想一个与 locksmithd 配对的解决方案可以自动处理这个问题,但我真的不想构建它,它也不会处理意外停机时间。
使用 Docker Swarm(或 Kubernetes)的部分理由是使节点可互换。
在 Traefik 集群前面放置一个负载均衡器/反向代理。反向代理可以在所有 Traefik 节点之间提供故障转移,DNS 将指向反向代理。
我是错过了什么还是想多了?
Simple Failover将自身定位为:
持续监控您的服务器以找出哪些服务器已启动和哪些已关闭,然后它会相应地动态更新您的 DNS 记录,以便您的域名始终指向功能正常的服务器。
据我所知,更新 DNS 记录可能需要数小时到数天才能传播。因此,即使他们动态更新我服务器的 DNS 记录,我的用户仍然需要等待几个小时才能看到任何更改,对吗?
如果是这样,“简单故障转移”如何工作?
我运行着一个流量相当大的网站,由于一些不幸的事件,我在 Linode 的云中的机器宕机了。而且我只有一台暴露于外界的负载均衡器机器(一个 IP)。
此外,我的网站是可以镜像的6,000 多个静态页面的候选。现在我的 DNS 是CloudFlare。
我可以做些什么来维护我网站的静态镜像并路由到它,以防我的网站出现故障。
因为我是从 Linode 运行的,所以我没有像Route53这样的东西来检测一个 IP 地址的停机时间并指向另一个 IP 地址。
人们使用静态镜像站点和防止停机的策略是什么?
domain-name-system cache mirroring static-content cloudflare
欢迎,
如何使用 DNS 服务器创建网站的简单 HA(高可用性)?
例如,如果我的网络服务器(为了更好地理解我实际上使用内部 IP,它将是其他托管公司)
192.168.0.120 :80(离线)流量转到 192.168.0.130 :80
你说得对,我用坏词“高可用性”当然我在考虑故障转移。
在 A 记录中使用少量 IP 有利于简单的负载平衡。但不是万一,如果我想通知用户关于失败的信息(例如显示页面,哎呀,没有我们的服务器就出现问题,我们正在处理它)反对“无法建立连接”。
我正在考虑设置这样的东西
2台DNS服务器,一台安装在www服务器上
两者都有低TTL
在我的域上,首先为 DNS 设置 2 ns 记录,我的 apache 服务器其次是其他 dns
如果用户尝试连接,他将使用第一个 dns 获取 www 服务器的 ip,如果该 dns 离线(可能 www 服务器也已关闭),那么它将尝试第二个 NS 记录,什么将指向另一个 dns,该 dns 将指向“备份“ 页。
这就是我想做的。
如果您有其他想法,请分享。
反向代理不是选项,因为服务器的 IP 可以更改,或者我可以使用其他国家/地区进行备份。
如果我的主 Web 服务器关闭(当前是 Rackspace Cloud 实例),我想回退到静态网页。这将是一种不应该发生但以前发生过的更糟情况(例如 Backspace 硬件故障)。服务器的冗余将是一个最佳解决方案,但预算是一个问题..所以我正在寻找一个低成本的自动回退,如果目前唯一的服务器发生问题
failover ×2
anycast ×1
apache-2.2 ×1
cache ×1
cdn ×1
cloudflare ×1
cluster ×1
datacenter ×1
dns-hosting ×1
geodns ×1
linux ×1
mirroring ×1
redundancy ×1
round-robin ×1
web-server ×1