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

15

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

在我的Heroku运行的Rails应用中,我能否允许用户自动添加自己的自定义域名?Heroku是否允许这样做?

  • 是否有可以帮助解决这个问题的附加组件?
  • 通过自定义域名,我指的是使用他们自己的顶级域名,而不是子域名。例如,example.com

这是最近关于此事的博客文章:http://www.mccartie.com/2016/04/04/letting-users-add-custom-domains-on-heroku.html - swastik
2个回答

6
可以的 - 您需要在应用程序中使用Heroku gem,当他们添加域时,您需要进行API调用将所选自定义域添加到您的应用程序中。
如果您想使用SSL,则不适用AFAIK,因为每个应用程序只能有一个SSL附加组件 - 但是,子域名更容易,因为您可以使用通配符子域名,然后还可以在您的域上使用通配符SSL而无需涉及API调用,因此您不必让客户编辑其DNS指向您的应用程序。

6

以下是一种解决方案:

  1. 设置一个通配符子域名(针对您的应用程序域),将其指向您在Heroku上的应用程序。
  2. 允许用户设置自定义子域名。
  3. 然后,用户可以设置一个CNAME(或ALIAS或ANAME,如此处所述:https://devcenter.heroku.com/articles/custom-domains),将其指向他们在您的应用程序上的自定义子域名。

2
我已经尝试过了。从Heroku那里得到了“没有这样的应用程序”错误。看起来自定义域仍然需要在Heroku的一侧添加。 - ac360
1
@ac360:嗯,是的,想想看,由于Heroku的域路由,这个解决方案行不通。我敢打赌,在Heroku上拥有自定义顶级域名可能是不可能的,但也许有人能想出更好的办法。 - mipadi
1
@HaykSaakian:对于第三步,它将指向自定义子域名,例如 customer.example.com - mipadi
这个应该可以工作吗?因为这里不行。@mipadi,你能解释得更好一些吗? - fiatjaf
@mipadi 现在我有点困惑,因为我没有看到您的评论说这在 Heroku 中是不可能完成的。我试着按照您的答案操作,如下:(1)将Heroku应用设置为'xyz.herokuapp.com'; (2)在Heroku中添加'*.xyz.com'作为自定义域;(3)让我的用户拥有他们的自定义子域名,例如'ludwig.xyz.com';(4)将另一个域,如'ludwig.org'指向'ludwig.xyz.com'。虽然'ludwig.xyz.com'可以正常使用,但所有这些操作都导致我在访问'ludwig.org'时从 Heroku 收到了“没有这样的应用程序”的错误信息。 - fiatjaf
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接