如何将我的域名从 hostgator 指向 heroku

How do I point my domain name from hostgator to heroku

我试图将我的 hostgator 域名指向我的 heroku 应用程序,但是当我尝试管理我的域名时,我总是收到错误消息。

An error occurred. Please verify the validity of your nameservers and try again.

我已经在站点仪表板 > 设置中将域名添加到 heroku。我的应用程序是免费的,我准备升级并为完整版付费。我一直在弄清楚一些事情,我已经准备好部署了。为此,我必须将我的域名指向 heroku。我知道我错过了什么。我已经阅读了很多文档,但还不是很清楚。我知道这是我想念的简单事情。提前致谢

编辑。我不希望我的域成为子域。我希望它成为主域。因为您无法通过子域网站获利。

编辑清楚我想将来自 hostgator 的域名 mysite.com 用于我的 heroku 应用程序。因此,当我输入 mysite.com 时,我的 heroku 应用程序就会出现。我希望我的 heroku 应用从此开始

 mysite.herokuapp.com

至此

mysite.com

我不希望它成为子域

根据 https://devcenter.heroku.com/articles/custom-domains,您必须首先在 Hostgator 添加 CNAME 记录,如 "CNAME www example.herokuapp.com"。之后,您必须将 www.example.com(带或不带 www)作为自定义域添加到您的项目中。真的很简单。

我将在这里概述两种方法。如果您仍然使用 cpanel,一个就可以了,因为您要为使用 HostGator 的主机付费。 (如果您使用 Heroku 进行托管,那是没有意义的,所以这不是一个长期的解决方案。)如果您只是在 HostGator 上注册了一个域,并且理论上在任何一种情况下,另一个都有效。

无论哪种方式,都这样做:

heroku domains:add www.mysite.com

heroku domains:wait 'www.mysite.com'

1) 如果您使用 HostGator 托管

在我的站点登录到您的 HostGator 控制面板界面。com/cpanel。向下滚动到域并打开高级区域编辑器(单击 link)。您不会添加记录。相反,你要改变一个已经存在的。查找名称为 "www.mysite.com."(末尾有句点)且类型为 CNAME 的记录。单击编辑。将 CNAME 字段更改为当您键入 heroku domains 或向下滚动到 Heroku 仪表板中“设置”下的“域和证书”时 heroku 为您提供的 DNS 目标。我的看起来像 www.mysite.com.herokudns.com。完成更改。

访问www.mysite.com。 将 www 放在 url 中。 www 必须在 url 中。这现在应该指向您的 Heroku 站点。也许您会看到 400(错误请求)错误。这可能是因为您的后端不允许 Heroku 作为主机。例如,如果你有一个 Django 应用程序,它没有处于调试模式(出于安全原因,你应该将 DEBUG 设置为 False),你还必须在 settings.py 中设置 ALLOWED_HOSTS 列表以包含 'www.mysite.com'.否则,当您尝试从 www.mysite.com 域访问该站点时,您将收到 400 错误。

最终结果是 www.mysite.com 指向您想要的位置,www.mysite.com/some_page.

也将如此。

但是如果用户只输入 "mysite.com" 怎么办?他们将被定向到您的 HostGator 网站。一个简单的解决方案是转到 CPanel 的重定向部分,也在域下,并从您的域(将以“/”开头的文本框留空)永久重定向到 http://(((www.mysite.com/))) [Whosebug 不会让我放它没有括号之类的东西。] 所有这一切都是强制 "www" 出现在 URL 中,即使用户没有输入它。 现在,无论用户输入什么,他们最终都会到达您的 Heroku 站点。我不介意 "www" 在 URL 盒子里闲逛,所以这对我有用。

2) 如果您没有使用 HostGator 托管,就放弃它,或者只是不喜欢该公司(完全可以理解)

如果您没有 HostGator 托管或放弃它,您可能无法访问 cpanel 的东西。首先,添加域,如顶部所示。现在为 Heroku 安装 PointDNS 附加组件。它会自动与您的自定义域同步(即使在您安装之后)。因此,当您在 Heroku 仪表板中打开 PointDNS 时,您会看到它基本上设置了您需要的所有内容。在 HostGator 中,在 https://portal.hostgator.com/domain/manage),单击您的域名并找到 link 以更改名称服务器。 Select Manually set my nameservers,并将默认名称服务器替换为您在 PointDNS 附加页面主页上看到的标有 NS 的名称服务器。 (您也可以在 PointDNS 中自由添加或更改它们。)

HostGator 说传播需要几天时间。我看到更改在几秒钟内生效。

如果现在没有 www. 它就无法工作(检查索引页以外的页面),我已经概述了一个可能的解决方案 here

使用此 PointDNS 解决方案,您可能希望在世界不同的地方测试您的网站,以确保它在那里可用。我确保我的网站可以在我希望人们看到它的地方使用,但它在北京也可以使用,所以我认为 PointDNS 不会有地理限制。我喜欢使用 www.webpagetest.org 从不同的位置测试网站。