0

问题:

我的 url xyz.co 正在解析为丑陋的 AWS 公共 DNS 名称,例如 ec2-11-22-33-44.ap-southeast-2.compute.amazonaws.com。它不坚持 xyz.co。

这是我所做的:

我已经根据http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html设置了我的 Route 53 配置,因此我创建了一个指向 IP 地址的 A 记录和一个 CNAME 别名记录以允许对于 www.xyz.co。该域与 godaddy 坐在一起,名称服务器配置为 AWS 委托集。

实例本身位于默认 VPC 中。我仔细检查了 DNS 解析和 DNS 主机名都处于活动状态。

我有点卡在这里。任何帮助将不胜感激!

干杯,布鲁诺

4

1 回答 1

2

您所看到的实际上与名称解析无关。

DNS 不可能更改 Web 浏览器地址栏中显示的内容 - DNS 和 Web 浏览器根本不会以使这种行为成为可能的方式进行交互。您的 URL 不会通过任何与 DNS 相关的东西“被解析为”这个新值,因为正确或错误配置的 DNS 本身不会影响那里显示的内容。

导航到 IP 地址具有相同影响的事实支持了这一断言。

您所看到的与 DNS 或 Route 53 甚至 EC2 或 VPC 没有任何关系。无论出于何种原因,您的 Web 服务器都配置为使用任何其他主机名将传入请求重定向到您随后在地址栏中看到的主机名(这是您不喜欢的主机名)。

您应该在 Web 服务器的日志中注意到这一点。它将在初始请求上发出 301 或 302 重定向。

您还应该能够使用curl命令行实用程序自己验证这一点。在这里,作为“www.example.com”访问的服务器正在重定向浏览器以使用其首选地址“example.com”。(主机名和地址已清理,但输出未修改。)

$ curl -v www.example.com
* Rebuilt URL to: www.example.com/
* Hostname was NOT found in DNS cache
*   Trying 203.0.113.139...
* Connected to www.example.com (203.0.113.139) port 80 (#0)

下一个输出块是发送到 Web 服务器的请求。

> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: www.example.com
> Accept: */*
>

来自 Web 服务器的 http 响应包括重定向。

< HTTP/1.1 301 Moved Permanently
< Content-length: 0
< Location: http://example.com/
< Connection: close
<
* Closing connection 0

如果我们使用浏览器而不是命令行工具,这将导致地址栏更改为新值,并建立与 Web 服务器的新连接(实际上可能是相同的,也可能是不同的...... . 在这种情况下,它是相同的)。

尽管我已经http://www.example.com在浏览器中输入了内容,但它现在只显示http://example.com/. 如果我的服务器配置为将所有内容重定向到一个主机名,我输入 IP 地址也会发生同样的事情,就像你的那样。就我而言,它是故意配置为做其他事情的。

上面应该说明您实际上没有 DNS 问题,并解释导致这种情况发生的机制(因为您可能会发现这对将来故意做有用的事情,就像我的 Web 服务器所做的那样——任何 www. * 请求在没有 www 的情况下被剥离和重写)。

问题在于您的 Web 服务器,它告诉浏览器使用不同的主机名。如何解决这个问题将取决于您正在运行的 Web 服务器以及它认为重定向是必要的原因。

于 2014-12-22T03:26:37.427 回答