Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 路由53记录集未解析为Elastic Beanstalk实例_Amazon Web Services_Amazon Elastic Beanstalk_Amazon Route53 - Fatal编程技术网

Amazon web services 路由53记录集未解析为Elastic Beanstalk实例

Amazon web services 路由53记录集未解析为Elastic Beanstalk实例,amazon-web-services,amazon-elastic-beanstalk,amazon-route53,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Route53,我正在尝试将特定子域路由到Elastic Beanstalk应用程序环境实例的url。该域中的其他路由工作正常 Route 53记录集的配置屏幕如下所示: 我可以使用environment.url.elasticbeanstalk.com访问环境,但无法使用subdomain.domain.com 你对可能出现的问题有什么线索吗?也许是关于弹性Beanstalk负载平衡器或安全组的内容 我找到了。似乎我正确地遵循了它们的配置。您应该设置CNAME记录而不是a记录。在“名称”字段中输入您的子域,

我正在尝试将特定子域路由到Elastic Beanstalk应用程序环境实例的url。该域中的其他路由工作正常

Route 53记录集的配置屏幕如下所示:

我可以使用environment.url.elasticbeanstalk.com访问环境,但无法使用subdomain.domain.com

你对可能出现的问题有什么线索吗?也许是关于弹性Beanstalk负载平衡器或安全组的内容


我找到了。似乎我正确地遵循了它们的配置。

您应该设置CNAME记录而不是a记录。在“名称”字段中输入您的子域,在“值”字段中输入Elastic Beanstalk URL。您应该使用或别名记录仅指向根域:domain.com

好的,不确定发生了什么,但我尝试通过将A-IPv4地址更改为CNAME来再次配置记录集,但运气不佳

然后我更改回A-IPv4地址,并尝试再次将别名目标输入到Elastic Beanstalk环境。当我从列表中选择我想要的environment.url.elasticbeanstalk.com并保存更改时,它就起作用了


我不知道这是否是一个bug,但我不记得更改了这个值。此外,我可以从字段中复制值,并在浏览器中测试它,没有问题。无论如何,我希望这能有所帮助。

这里有一些东西可以尝试。我与AWS支持代表进行了交谈,他得到了非常有用的反馈。以下是他不得不说的话:

AWS支持人员- 虽然其中一些值根本不正确,但大多数值是URL,而不是DNS名称,因为它包括http://。这通常是因为在测试对beanstalk应用程序的访问权限后,从浏览器地址栏复制了名称。虽然您可以在路由器53中设置此功能,但您无法连接到它。您可能在test.example.com上看到类似于“我们无法连接到服务器”的错误。当您使用其DNS名称连接到web应用程序时,将发生的第一件事是DNS解析。例如,域名test.example.com。决心http://test-env.eba-xxxxxx.us-east-1.elasticbeanstalk.com/ 然后这个值被缓存在DNS缓存中。如果随后使用正确的值更新DNS记录,然后再次尝试解析相同的名称test.example.com,则它将从缓存中获取该值,而不是从托管区域中的名称服务器获取新值。然后,即使您现在已使用正确的值更新了记录,您仍会在浏览器中看到错误。此值在TTLTime to Live中设置的持续时间内保留在缓存中。一旦TTL过期,您的DNS解析器将再次查询托管区域中的名称服务器并获得正确的值。通过查看ChangeResourceRecordSets API调用,我可以看到这些更改非常接近。CNAME的默认TTL为300秒,我可以确认这与您遇到的问题的原因非常相似。因此,建议在测试DNS记录时设置较低的TTL。此外,您还可以清除DNS缓存或从不同网络进行测试。在Windows计算机上,可以使用命令ipconfig/flushdns清除DNS缓存

根据我的个人经验,如果您是webserver,但还没有HTTPS,并且您使用的域是您以前访问过的域,而我以前使用的域是HTTPS,那么我使用的域通常用于测试,然后,浏览器可能会自动将您的请求升级到HTTPS,就像我的请求一样,这还不是很清楚,尤其是当浏览器地址栏中的协议文本经常被删除时,如果您的应用程序仅在80上运行,并且您向443发出请求,则会导致问题。清除浏览器数据以确保它不记得以前的用法,并自动升级您的请求,或完全关闭该升级以确保通过HTTP发出请求。 我相当肯定我同时遇到了这两个问题,这导致了这个问题令人头痛。有些相关-我的用例将Route53域放在一个单独的帐户上,而不是弹性beanstalk环境


希望这有助于

使用Thank@saitejapakalapati检查传播,我检查了该工具,它似乎是用于检查不同位置的DNS分辨率。这不是我的问题,子域在任何位置都不起作用。我是否遗漏了该工具的某些内容?谢谢您的评论。我尝试使用CNAME而不是A,但运气不好。另一个AWS配置可能会导致此问题吗?CNAME可以工作,但alias设置为No,因为它是直接传递的。请注意CNAME重定向的AWS费用。此处使用CNAME的主要限制->。