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

Posted

技术标签:

【中文标题】Heroku + Rails:如何允许我的用户添加他们自己的自定义域【英文标题】:Heroku + Rails: How to allow my Users to add their own Custom Domains 【发布时间】:2013-05-19 03:17:40 【问题描述】:

互联网上有大量关于此的帖子,但没有答案。

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

是否有插件可以帮助解决这个问题 通过自定义域,我的意思是使用他们自己的***域添加, 不是子域。例如,example.com

【问题讨论】:

这是最近的一篇博文:mccartie.com/2016/04/04/… 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

    设置指向 Heroku 应用的通配符子域(用于您应用的域)。 允许用户设置自定义子域。 然后,用户可以在您的应用中设置指向其自定义子域的 CNAME(或 ALIAS 或 ANAME,如 here 所述)。

【讨论】:

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

以上是关于Heroku + Rails:如何允许我的用户添加他们自己的自定义域的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails 3.1 和 Unicorn 在 Heroku 上进行 HTTP 流式传输

Rails:使用Heroku时如何获取当前用户的时区

如何使用 Heroku/Rails 4 应用程序设置新的 Redshift 数据库

Rails,mongoid,heroku 性能

Rails friendly_id 不会在 heroku 上的现有用户上呈现

如何从 Heroku 数据库到我的本地计算机?我有一个 Django 应用程序(不是 Rails)