如何在heroku应用程序中指向域

Sta*_*ers 1 ruby-on-rails heroku

虽然我已经在我的VPS上完成了这个,但是我从来没有为heroku应用程序做过这个,现在我必须为一个相当大的公司做这个,所以我真的想要一个简单的子弹点列表来说明如何做到这一点.

我已经阅读了这些说明,而且我仍然有点不清楚它们究竟是什么意思.再说一遍,如果我有更多的时间,我会购买一些垃圾领域并自己测试,但我没有时间在我身边,需要第一次做到这一点!

值得庆幸的是,目前不需要SSL.

这是我可以收集的内容,我需要做的是将URL指向www.foobaryfoobs.com我的应用程序,运行在warm-chamber-1882.herokuapp.com.请指正:


1)我添加www.foobaryfoobs.com到包含应用程序的本地存储库.

我假设我通过导航到本地计算机上的存储库并运行:

$ heroku domains:add www.foobaryfoobs.com
Run Code Online (Sandbox Code Playgroud)
  • 这是如何运作的?它是否更新了我需要添加到存储库然后推送到heroku的某个配置文件?

  • 这里有任何警告或最佳做法吗?我应该添加哪些其他域名?heroku domains:add *.foobaryfoobs.com, 例如?

  • Heroku建议我们在这里使用上面的通配符域.为什么?


2)登录创建的注册商www.foobaryfoobs.com并导航到其控制面板.

3)更新域的CNAME记录以指向 warm-chamber-1882.herokuapp.com

  • 我大部分时间都在做什么?我现在等待吗?

  • 没有IP相关的东西吗?

  • 该域名附有数十封电子邮件.只要我不触摸MX记录,我应该没事?

  • 什么是根域?我为什么要添加它?

  • 我为什么要关心:

某些DNS主机提供了一种使用自定义记录类型在区域顶点获取类似CNAME功能的方法.


4)更新域的FORWARD/URL记录,使其foobaryfoobs.com指向www.foobaryfoobs.com

  • 对于一个nooby,请解释为什么这是必要的.

3个结论性问题:

1)这应该如何设置?:

该应用程序:

warm-chamber-1882.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

应该有以下配置(保存在一些奇怪的配置文件中,我不介意了解更多关于):

domains:
www.foobaryfoobs.com
*.foobaryfoobs.com
Run Code Online (Sandbox Code Playgroud)

域名:

www.foobaryfoobs.com
Run Code Online (Sandbox Code Playgroud)

应该有以下记录:

CNAME: warm-chamber-1882.herokuapp.com
URL / FORWARD: foobaryfoobs.com target: www.foobaryfoobs.com
MX: *as long as I don't touch them the emails will still work*
Run Code Online (Sandbox Code Playgroud)

2)我是否受到以下保护:

确保您的DNS配置与您添加到Heroku的自定义域一致非常重要.特别是,如果您已将*.example.com的DNS配置为指向example.herokuapp.com,请确保您还运行heroku域:add*.example.com.否则,恶意用户可能会将baddomain.example.com添加到他们的Heroku应用程序并接收针对您的应用程序的流量.

3)我应该如何调整具有SSL后端部分的站点的步骤?

Par*_*war 5

一个.

$ heroku domains:添加www.foobaryfoobs.com

这是如何运作的?它是否更新了我需要添加到存储库然后推送到heroku的某个配置文件?

  1. 我不确切地知道它是如何在内部工作的,但是这个命令相当于添加ServerName了apache配置文件,当没有这个请求www.foobaryfoobs.com时它将被转发到heroku因为dns但是heroku无法确定你的应用程序.您将看到下图. 在此输入图像描述

    这就是为什么他们需要您的域名,以便他们知道哪些应用程序属于哪些域名.他们还需要它用于域优先目的.只要您可以允许您的用户访问Heroku子域即可,您的代码不需要进行任何更改 warm-chamber-1882.herokuapp.com.如果您不希望用户访问heroku子域,您必须传递301http状态,以便将其重定向到您的实际域,即www.foobaryfoobs.com.为此,您已在应用程序控制器中添加此项

    before_action :forward_to_domain_if_heroku_subdomain
    
    private 
    
    def forward_to_domain_if_heroku_subdomain
      if request.host == 'warm-chamber-1882.herokuapp.com'
        redirect_to "http://www.foobaryfoobs.com" , status: 301
      end
    end
    
    Run Code Online (Sandbox Code Playgroud)

这里有任何警告或最佳做法吗?我应该添加哪些其他域名?heroku域名:例如添加*.foobaryfoobs.com?

  1. 如果你只想www.foobaryfoobs.com用作你的域名,那么这个命令就足够了

    heroku domains:add www.foobaryfoobs.com
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果你想分配裸域,foobaryfoobs.com那么你也必须运行

    heroku domains:add foobaryfoobs.com
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您的应用程序使用像那样的子域,subdomain.foobaryfoobs.com您还必须运行

    heroku domains:add foobaryfoobs.com
    
    Run Code Online (Sandbox Code Playgroud)

2)登录创建www.foobaryfoobs.com的注册商并导航到其控制面板.

要珍贵,你必须做DNS管理工具.

3)更新域的CNAME记录以指向warm-chamber-1882.herokuapp.com

是.

我大部分时间都在做什么?我现在等待吗?

是的,但也有其他的事情.

没有IP相关的东西吗?

是的,没有与ip相关的东西.

该域名附有数十封电子邮件.只要我不触摸MX记录,我应该没事?

是.

什么是根域?我为什么要添加它?

如果你想接受来自warm-chamber-1882.herokuapp.com(而不是www. warm-chamber-1882.herokuapp.com)用户的请求,那么你必须添加它.

我为什么要关心:某些DNS主机提供了一种使用自定义记录类型在区域顶点获得类似CNAME功能的方法.

  1. 是.他们正在谈论ALIASANAME记录类型.(DNSimple提供).您必须关心它,因为从该自定义记录类型可以轻松添加记录.它们就像预先定义的模板,例如记录ALIAS模板A.

4)更新域的FORWARD/URL记录,以便foobaryfoobs.com指向www.foobaryfoobs.com

对于一个nooby,请解释为什么这是必要的.

这是必要的,因为www.foobaryfoobs.comfoobaryfoobs.com在类似同样的方式不同images.google.comnews.google不同.www没什么特别的,它只是一个子域名.如果您不这样做,用户无法使用您的网站,foobaryfoobs.com但可以访问www.foobaryfoobs.com.

B.

1)这是应该如何设置的?

是的,这是正确的.但是,如果你要允许foobaryfoobs.comwww.foobaryfoobs.com,你必须做一些像见下表.*.foobaryfoobs.com如果您的应用不使用任何子域,则不需要记录www.实际上添加是不好的做法*.foobaryfoobs.com.

Type  |     Name             | Content
---------------------------------------
ALIAS | foobaryfoobs.com     | yoursite.herokuapp.com
CNAME | www.foobaryfoobs.com | yoursite.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

确保您的DNS配置与您添加到Heroku的自定义域一致非常重要.特别是,如果您已将*.example.com的DNS配置为指向example.herokuapp.com,请确保您还运行heroku域:add*.example.com.否则,恶意用户可能会将baddomain.example.com添加到他们的Heroku应用程序并接收针对您的应用程序的流量.

是.此外,你不必担心这一点.如果恶意用户可以在您的域中设置子域,那么他就可以做很多破坏:P.实际上,恶意用户无法访问您的DNS管理工具,因此您是安全的.