假设我有一个域名 foo.com,其中有一系列页面,例如foo.com/123
和foo.com/456
等。我想使用该域名并提供不带www
前缀的链接。这些页面还将包含指向其他页面(以及彼此)的链接,而无需前缀www
。
我使用 Azure 来托管我们的网站,它与 EC2 相同,因为服务器环境是虚拟化的,所以域不能有 A 记录。因此,微软和亚马逊都告诉您使用 CNAME 记录将您的域指向他们管理的 A 记录。在 Azure 的情况下,我的 CNAME 记录指向 cloudapp.net 记录(由微软管理):
foo.com CNAME foo.cloudapp.net
foo.cloudapp.net
我在 Azure 上设置的域在哪里。
我遇到了各种各样的问题,例如电子邮件传递和不同的人无法加载网站。2 个不同的名称服务器提供商和我的托管商告诉我,将根域作为 CNAME 条目违反了 RFC,这就是为什么我的问题时有时无。
我很惊讶听到这个消息,因为您看到如今许多网站托管在 EC2 或 Azure 上,并且不使用前缀www
。这些网站如何设置才能只使用foo.com
(无www
前缀)?
更新:当我询问有关 EC2 或 Azure 的问题时,我专门在寻找有关 Azure 的信息。
答案1
在 EC2 上运行的网站可以通过区域顶点或裸域(如带有 A 记录的“example.com”)提供服务。服务器在虚拟机中运行这一事实对此没有影响。许多网站都这样做,包括我的大多数网站。
如果您正在使用需要 CNAME 的服务(例如 Amazon 的 Elastic Load Balancer),则您无法使用区域顶点或裸域(例如“example.com”)指向它,因为 CNAME 不能与裸域一起使用。这是 DNS 规范的限制,与云或虚拟化实现无关。
只要您使用 Amazon 的 Route53 DNS 服务托管该区域的 DNS,您仍然可以将 Amazon 的 Elastic Load Balancer 与区域顶点或裸域(如“example.com”)一起使用。Amazon 会使用一些技巧,使 A 记录动态映射到 CNAME 返回的结果,从而符合 DNS 规范,同时提供 ELB 所需的灵活性和功能。
我对 Azure 一无所知。您在尝试使用时违反了 DNS 规范。
答案2
如果您的 DNS 托管于以下任一服务器,则可以执行此操作DNSimple利用他们的别名记录类型,或DNSMadeEasy利用他们的一个名字记录类型。
Cloudflare 的DNS 也允许这样做。
此外,如果您使用 EC2、ELB 和 Amazon 的 Route53 DNS 服务,那么可能的。