我正在尝试使用docker和nginx设置我自己的HA解决方案,并在前面充当负载均衡器。
它们实际上是现在配置的。但是,如果主节点关闭,作为回退,我想使用另一个,因为复制了用于负载平衡的nginx配置。
我认为如果我有两个节点,都设置了PowerDNS(以及nginx和docker),并且当节点关闭时,我将这些DNS服务器设置为我的一个域,因为节点正在携带DNS服务器,后续请求将从其他DNS服务器获取信息,其中A记录配置为指向本地IP(这样,指向另一个负载均衡器)。
好像我无法做到这一点。
鉴于我有以下服务器:
server_1 IP = 1.1.1.1
server_2 IP = 1.1.2.2
他们每个人都有一个使用PowerDNS设置的DNS服务器(根据挖掘和其他测试,功能完全正常)。
我的域名DNS服务器指向了他们:
ns1.example.com ---> 1.1.1.1
ns2.example.com ---> 1.1.2.2
ns1.example.com DNS服务器具有:
example2.com A 1.1.1.1
ns2.example.com DNS服务器具有:
example2.com A 1.1.2.2
因此。当两个服务器都在运行时,不是example2.com指向1.1.1.1/1.1.2.2,但是当第一个服务器不可用时,请指向1.1.2.2吗?
好。当我关闭第一台服务器并尝试时,它会给我第一台服务器而不是第二台服务器的IP。
甚至dig example2.com @ns2.example.com
正在给我第一个DNS服务器中example2.com的A记录中定义的IP。
我错了,或者这里有什么奇怪的东西?
答案 0 :(得分:0)
我不知道你在哪里知道名称服务器是以某种优先级顺序列出的,但这是完全错误的。所有对区域具有权威性的名称服务器都应具有完全相同的内容。解析器选择名称服务器随机询问,以在它们之间分配负载。为权威服务器提供不同的内容只会给最终用户带来不一致的结果,而不是任何有用的结果。
此外,您忘记了解析器缓存了他们得到的答案。即使DNS按照您的想法运行(但事实并非如此),也会花费几分钟或几小时的时间来注意“故障转移”。