无法将 Amazon 负载均衡器与 Cloudflare 上的子域关联

Posted

技术标签:

【中文标题】无法将 Amazon 负载均衡器与 Cloudflare 上的子域关联【英文标题】:Unable to associate the Amazon Load Balancer with a subdomain on Cloudflare 【发布时间】:2021-09-08 14:56:10 【问题描述】:

我有 Amazon 负载均衡器。我试图让我的一个子域将请求重定向到负载均衡器。在此doc (point Amazon ELB (Elastic Load Balancing)) 之后,我在 Cloudflare 上的域中创建了一条新的 CNAME 记录:

类型:CNAME 名称:api 目标:xxx.us-east-2.elb.amazonaws.com TTL:自动 代理状态:仅 DNS

我等了 24 小时以上,但在 api.mydomain.com 上仍然一无所获。我检查了 3 个地址并得到:

检查负载均衡器(OK):

$ nslookup xxx.us-east-2.elb.amazonaws.com

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   xxx.us-east-2.elb.amazonaws.com
Address: 3.xx.xx.255
Name:   xxx.us-east-2.elb.amazonaws.com
Address: 3.xx.xx.165

检查主域(OK):

$ nslookup mydomain.com

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   mydomain.com
Address: 108.xx.xx.71

检查新的子域(NOTHING):

$ nslookup api.mydomain.com

Server:         192.168.1.1
Address:        192.168.1.1#53

** server can't find api.mydomain.com: NXDOMAIN

问题:

    我是否应该进行额外的设置以使其正常工作? 为什么nslookup api.mydomain.com 什么都不返回?是不是好像没有创建子域,所以问题不在于负载均衡器和 Cloudflare 之间的连接,而是 Cloudflare 没有创建子域? 通过link (point AWS nameserver updates),我可以找到将名称服务器记录添加到 Route 53 的说明,但我找不到任何有关它如何帮助我的信息。我已经用我的 Cloudflare 域中的两条 NS 记录替换了“托管区域”(AWS) 上域的默认 NS 记录,但没有效果。我是否需要配置 Route 53 以使负载均衡器与 Cloudflare 一起使用(我不使用 Route 53)? 我在 Cloudflare 上启用了“灵活”SSL/TLS 加密模式。我需要主域的灵活加密,而子域不需要它,因为它们有自己的 SSL。这会影响问题吗?

【问题讨论】:

你说得对,NXDOMAIN 意味着它根本没有被解决——所以就像 cloudflare 还没有传播它一样。 SSL/TLS 与此问题无关。但是,您提到的一个有趣的点是 Route 53 和 NS - 您能否分享更多关于 Cloudflare 和 NS 之间的设置的信息?您通常会使用一个 CDN 或另一个。那么您的域是否完全使用 Cloudflare 配置?在某些情况下,您需要在两个提供商之间拆分 DNS 管理,这就是 NS 的用武之地。 关于 Route 53 设置。我只是尝试设置它,以防 AWS ELB 需要额外设置来接受到我的 Cloudflare 配置域的连接(我不确定是否需要)。 我做了什么: (a) 在 AWS 上创建了托管区域“mydomain.com”; (b) 从 Cloudflare 上的域页面(DNS 选项卡 -> NS 记录)复制了 2 个域名服务器 (xxx.ns.cloudflare.com); (c) 用从 Cloudflare 复制的 2 个名称服务器替换了 AWS 上新创建的托管区域 (ns-xxx.awsdns-xx.xxx) 的 4 个现有名称服务器。 @KedMardemootoo 感谢您的关注,但问题出在粗心 【参考方案1】:

问题在于以前的开发人员从 OVH 迁移到 Cloudflare 时表现不佳。我将帮助我找到原因根源的方法放在这里,以防万一它对其他人有帮助。

我做了什么:

    我检查了子域api.mydomain.com 并看到了响应Status: NXDOMAIN。但是,如果我已将 AWS ELB 的 CNAME 正确设置为灰色云(仅限 DNS),我应该从解析器中获取亚马逊 IP。检查员:http://dig.ping.pe/api.mydomain.com:NS:1.1.1.1 我检查了我的域的 NS 记录,发现它们指向 OVH 而不是 Cloudflare。检查员:http://dig.ping.pe/mydomain.com:NS:1.1.1.1 要使其在 Cloudflare 上运行,我必须访问域名注册商并更改 NS:Changing your domain nameservers to Cloudflare

回答我自己的问题:

    我应该进行额外的设置以使其正常工作吗? 不。添加 CNAME 记录就足够了。

    为什么nslookup api.mydomain.com 什么都不返回? 因为没有创建子域。

    我是否需要配置 Route 53 才能使负载均衡器与 Cloudflare 一起使用? 不,你不需要它。

    SSL/TLS 会影响问题吗? 没有

【讨论】:

以上是关于无法将 Amazon 负载均衡器与 Cloudflare 上的子域关联的主要内容,如果未能解决你的问题,请参考以下文章

Amazon AWS负载均衡器EC2实例解决ip范围

登录后具有 cognito 的 Amazon 负载均衡器返回 401

带有 IIS 的 Amazon 弹性负载均衡器

AWS 负载均衡器 - 无法添加 https 重定向/规则部分不可用

在 Amazon EBS 设备之间同步

是否可以在没有负载均衡器的情况下使用带有 SSL (HTTPS) 的 Amazon Elastic Beanstalk?