我刚刚开始考虑部署网页并体验 DNS 等的乐趣。我想知道如何设置多个具有自己的主机名/公共 IP 地址的 Web 服务器,并让它们从一个域提供网页。
例如,假设您有一个网站 example.com,DNS 中有一个指向其 IP 地址 1.2.3.4 的 A 记录。
您需要拥有两台服务器,prod1 和 prod2,并且在它们前面有某种负载平衡器,以便进行故障转移。
我认为您可能希望这些服务器的主机名是 prod1.example.com 和 prod2.example.com 以及 loadb.example.com。
您将如何设置 DNS 以使这一切正常工作。即,您可以 ssh 到任何服务器域,prod1.example.com、prod2.example.com 或 loadb.example.com,也可以只使用 www.example.com url 访问该网站。所有这些服务器名称都可以从公共互联网解析吗?这安全吗?
这将是一个 Linux 环境,为了论证目的,ubuntu 是一个 Django 框架动态网站,在 apache 2.2 中运行
欢呼马克
答案1
这实际上非常简单,但具体操作方法取决于您使用的 LB。
在您的示例中,您只需为 example.com 设置一条 A 记录,该记录指向 LB 提供的虚拟 IP 地址。LB 将定期探测 Prod1 和 Prod2,以检查它们是否正常运行(有时检查它们的繁忙程度),并根据此情况将每个请求交给服务器进行处理。如果需要,您可以为 Prod1 和 Prod2 创建额外的 A 记录,如果您希望直接与特定服务器通信,而 LB 忽略该请求。
这里有一些额外的细节;
Prod1.example.com=1.1.1.1,这是 Prod1 的真实 IP
Prod2.example.com=1.1.1.2,这是 Prod2 的真实 IP
Prod.example.com=1.1.1.3,LB 创建并指向 Prod1.example.com 和 Prod1.example.com(您可以使用 DNS 名称或 IP)。
请求到达 Prod.example.com 的 LB,LB 知道两者都已启动,因此将请求发送到 Prod1.example.com,下一个请求发送到 Prod2.example.com,依此类推。
上面的例子使用“循环”规则来平衡流量,但是您还可以使用许多其他规则(即谁最不忙),但这取决于所使用的 LB。
可以吗?如果不可以,请告知我们,我们会回复您。