使用 heroku 配置 namecheap 域名

configuring namecheap domains with heroku

我在 heroku 上有一个应用程序(付费测功机):

https://example.herokuapp.com/

我购买了一个域名:

www.example.com

阅读了多个指南后,我不知道如何执行以下操作:

总体目标是拥有一个像 api.example.com

这样的域

谢谢。 注意:请不要简单地 link 从 heroku 和 namecheap 获取文件。我都看完了,都出date/unspecific.

我最近刚做了类似的事情,我想这就是你需要的。就我而言,我需要为现有的 heroku 应用程序启用 SSL ACM (Automatic Certificate Management)。

首先,您需要打开自动证书管理以从 heroku 获取 SSL 证书。

  • 检查 ACM 是否开启

    $ heroku certs:auto -a [your app name]
    === Automatic Certificate Management is disabled on [your app name]
    
    Note: if you don't have heroku-toolbelt installed, just ignore this step. It's just a check.
    
  • 转到 heroku 仪表板的设置

  • 单击 'Configure SSL' 按钮
  • 选择 ACM 并点击继续
  • 如果 api.mysite.com 不存在,请单击 'Add domain' 按钮。
  • 注意 'DNS Target' 类似于 api.mysite.com.herokudns.com
  • 再次检查证书状态

    $ heroku certs:auto -a [your app name]
    === Automatic Certificate Management is enabled on [your app name]
    

其次,您需要登录您的 namecheap dns 区域文件页面并添加 CNAME。

  • 将 CNAME 更改为 'api' 记录以指向 api.mysite.com.herokudns.com(或上面 DNS 目标中的任何内容)

    TYPE        NAME        VALUE
    A           @           10.10.10.10                         <<< your www ip 
    CNAME       api         api.mysite.com.herokudns.com        <<< you need this one.
    
  • 等待 10 分钟

  • 浏览至 api.mysite.com

考虑到您的应用位于 https://example.herokuapp.com/,并假设您拥有域 www.example.com,请按照以下步骤将您的应用 运行 置于您的自定义域中:

使用 Heroku CLI

  1. 添加带有子域的自定义域

$ heroku domains:add www.example.com

  1. 添加自定义根域

$ heroku domains:add example.com

在 namecheap

登录您的帐户后

  1. Select 域列表,然后单击您的域旁边的 管理 按钮:

  1. 导航到 高级 DNS 选项卡并单击主机记录部分中的 添加新记录 按钮:

  1. 要使用 www.example.comexample.com,应创建以下主机记录:

URL Redirect Record for @转发给http://www.example.com(图中http://www.yourdomain.tld

CNAME Record for www 映射到您的 Heroku 域 www.example.com.herokudns.com.(图片中的 www.yourdomain.tld.herokudns.com.

  1. (可选) 要使用任何其他子域,如 app.example.comexample.com,您应该创建以下记录:

URL Redirect Record@转发给http://app.example.com(图中http://app.yourdomain.tld

CNAME Record for app mapped to your Heroku Domain app.example.com.herokudns.com. (app.yourdomain.tld.herokudns.com. in the picture)

就是这样!现在您的应用程序应该 运行 在 www.example.com

有关 namecheap 方面的更多信息,您可以查看 this link

所以 CNAME 对我不起作用。在 Heroku 中,我按如下方式设置我的域:

然后在 Namecheap 中,我使用您的 Heroku DNS 目标设置重定向和 ALIAS WWW 记录

相信我,如果有人为此苦苦挣扎,请尝试此配置!经过多次尝试和错误尝试后为我工作。