问题 Heroku + Rails:如何允许我的用户添加自己的自定义域


在互联网上有很多关于这个的帖子,但没有答案。

在Heroku上运行的Rails应用程序中,我可以允许我的用户自动添加自己的自定义域吗? Heroku是否允许这样做?

  • 是否有附加组件来帮助解决这个问题
  • 通过自定义域名,我的意思是使用自己的顶级域名添加, 不是子域名。例如,example.com

3732
2018-05-23 16:40


起源

这是最近的博客文章: mccartie.com/2016/04/04/... - usernames


答案:


是的,这绝对是可能的 - 您必须在应用程序中使用Heroku gem,当他们添加域时,您需要进行API调用以将他们选择的自定义域添加到您的应用程序中。

如果您希望能够使用SSL,那么它将无法使用AFAIK,因为每个应用只能有一个SSL插件 - 但是,子域更容易,因为您可以执行通配符子域,然后还可以使用通配符SSL域,而不必涉及进行API调用,然后您不必让您的客户编辑他们的DNS指向您的应用程序。


5
2018-05-24 08:04





这是一个允许这样做的解决方案:

  1. 设置指向您的Heroku应用程序的通配符子域(针对您的应用程序的域)。
  2. 允许用户设置自定义子域。
  3. 然后,用户可以设置CNAME(或ALIAS或ANAME,如上所述) 这里)指向您的应用程序上的自定义子域。

4
2018-05-23 18:46



我试过了。我从Heroku那里得到了“没有这样的应用程序”的错误。看来自定义域仍然需要在Heroku方面添加。 - ac360
@ ac360:嗯,是的,想到它,使用Heroku的域路由解决方案是不可行的。我敢打赌,使用Heroku不可能拥有自定义顶级域名,但也许有人可以提出更好的东西。 - mipadi
如果CNAME指向example.com或example.herokuapp.com或proxy.herokuapp.com - Hayk Saakian
@HaykSaakian:对于步骤#3,它将指向自定义子域,例如, customer.example.com。 - mipadi
我刚才想到的一个问题是,如果应用和客户都拥有heroku应用,并且客户希望其网站上的子域指向您域中的子域。例如:example.customer.com - > customer.example.com当example.com和customer.com都在heroku上。 devcenter.heroku.com/articles/custom-domains#domain-precedence。这会有用吗? - Hayk Saakian