12

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

https://example.herokuapp.com/

我购买了一个域名:

www.example.com

阅读多个指南后,我无法弄清楚如何执行以下操作:

  • 将域指向我的 heroku 应用程序(使用 SSL)
  • 配置像api.example.com这样的子域

总体目标是拥有像api.example.com这样的域

谢谢。注意:请不要简单地链接到 heroku 和 namecheap 的文档。我已经全部阅读了它们,它们已经过时/不具体。

4

3 回答 3

8

我最近刚刚做了类似的事情,我认为这是你需要的。就我而言,我需要为我现有的 heroku 应用打开 SSL ACM(自动证书管理)。

首先,您需要打开自动证书管理以从 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仪表板的设置

  • 单击“配置 SSL”按钮
  • 选择 ACM 并单击继续
  • 如果 api.mysite.com 不存在,请单击“添加域”按钮。
  • 记下类似于 api.mysite.com.herokudns.com 的“DNS 目标”
  • 再次检查证书状态

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

其次,您需要登录到您的 namecheap dns zonefile 页面并添加 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
于 2017-09-30T06:14:47.347 回答
5

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

使用 Heroku CLI

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

$ heroku domains:add www.example.com

  1. 添加自定义根域

$ heroku domains:add example.com

名副其实

登录您的帐户后

  1. 从左侧菜单中选择域列表,然后单击域旁边的管理按钮:

在此处输入图像描述

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

在此处输入图像描述

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

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

CNAME Record映射到您的wwwHeroku 域www.example.com.herokudns.com.www.yourdomain.tld.herokudns.com.在图片中)

在此处输入图像描述

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

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

CNAME Record映射到您的 Heroku 域的应用程序app.example.com.herokudns.com.app.yourdomain.tld.herokudns.com.在图片中)

在此处输入图像描述

而已!现在您的应用程序应该在www.example.com.

有关 namecheap 方面的更多信息,您可以查看此链接

于 2018-07-30T05:05:31.443 回答
2

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

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

在此处输入图像描述

相信我,如果有人一直在努力解决这个问题,试试这个配置!经过多次反复试验后为我工作。

于 2020-09-12T22:40:56.193 回答