我花了一个小时阅读这个主题(在SO和其他地方),但仍然无法理解。
是否有任何替代方法或说明如何“为虚拟用户”完成此操作?
我会尝试回答这个经常被问到的问题。
假设您拥有一个域名example.com并想使用www.example.com来托管您的站点。在传统的托管中,您可能会拥有一个虚拟服务器,该服务器被分配了一个IP地址,在这种情况下,您需要在DNS控制面板中使用主机记录(也称为A记录)将www.example.com映射到IP地址。在这种情况下,由于您现在已将www.example.com设置为固定的IP地址,如果该IP地址发生变化,您将需要自己更新DNS。
另外,在传统的托管中,您可以将example.com设置为相同的IP地址,因此www.example.com和example.com都适用于裸域名。
那什么是CNAME记录呢?与将记录映射到IP地址不同,CNAME记录将记录映射到另一个DNS条目。因此,将www.example CNAME'D到example.herokuapp.com意味着Heroku可以并且可能会移动example.herokuapp.com指向的位置,但您无需更新任何内容,因为您正在使用CNAME记录,而Heroku正在管理example.herokuapp.com指向的位置(这可能是另一个CNAME或IP地址)。 CNAME记录的问题在于它们无法指向IP地址,这对于www.example.com来说很好,但是对于example.com来说却是个问题。Heroku以前发布了用于裸域名的IP地址,但当它们遭受DDOS攻击并且无法用新IP替换这些IP时,问题就出现了,因为它们是已发布的IP地址。 对于新的欧盟区域,Heroku不会发布用于裸域名的IP地址。
一些DNS提供商(我知道DNSsimple是其中之一)添加了自己的别名记录到其DNS服务器中,以允许您在裸域名上使用CNAME,因此www.example.com和example.com都将像Heroku所支持的那样工作。如果您的DNS提供商不支持ALIAS记录,则值得将域名移动到支持它的DNS提供商。 DNSsimple还支持重定向记录,因此您可以在DNS提供商级别上将www.example.com重定向到example.com而不是在应用程序层面上进行操作。
如果您查看DNS记录规范,您将找不到ANAME记录。
解决此问题的最佳方法是: 为www子域名创建CNAME条目,指向您的Heroku应用程序,并为根域名创建指向www子域名的CNAME记录。
P.S. 它有效,并且不会让您浪费金钱购买神秘的DNS记录。