我们有一些运行 NGINX 的 EC2 实例,这些实例将通过负载均衡器访问,可以通过以下方式访问www.example.com。负载均衡器将流量重定向到适当的 EC2 服务器。这很好用,但有时我们想绕过负载均衡器(以节省资金并增加数据吞吐量)。我们连接到ip12-23-34-45.ec2.aws.amazon.com(示例)并直接检索信息。
这很好,但现在我们开始为所有服务迁移到 SSL。我们有一个域名证书示例.com域,如果我们通过负载均衡器连接,它就可以正常工作。当我们直接连接到 EC2 服务器时,它就不起作用了,因为我们提供的是我们的域的证书,而不是 Amazon 域的证书。
我们可以控制要重定向到的主机名,因此我可以选择重定向到ec2.example.com代替ec2.aws.amazon.com。因此,不要重定向到ip12-23-34-45.ec2.aws.amazon.com我们将重定向至ip12-23-34-45.ec2.example.com。这显示了 example.com 证书,应该没问题。
问题是这些主机名无法解析。我们的服务器是动态创建的,一遍又一遍地更改 Route53 DNS 来修改别名似乎有点麻烦。我宁愿在 Route53 中创建一个 DNS 规则,将所有内容映射到.ec2.example.com到.ec2.aws.amazon.com。
是否可以创建一条规则,将整个子域映射到 Route53 中的另一个子域?或者我们可以使用其他解决方案来绕过负载均衡器并仍然使用 SSL?
答案1
不存在可以映射整个域的“通配符” DNS。
我建议您使用任何自动创建服务器的软件来创建 DNS 条目。您可以将一个域名映射到多个服务器 - 每次查找域名时,它都会为您提供列表中的下一个服务器(循环 DNS)。
因此,您可以让 server.example.com => ip12-23-34-45.ec2.aws.amazon.com。然后,当您创建另一个服务器时,将其主机名添加到列表中,这样 server.example.com 就会解析为 ip12-23-34-45.ec2.aws.amazon.com 和 ip45-67-89-10.ec2.aws.amazon.com。
然后,当您连接到 server.example.com 时,您将连接到两个服务器之一。
或者,如果您需要具体知道您要连接的服务器,那么请维护一个计数,并分配服务器 1...服务器 2...等等。