Rails,Heroku和Subdomains。 我的特殊情况是否可行?

这是我的情景:

我有一个必须支持多个客户端的应用程序。 每个客户端都将获得一个服务的子域。 我们还将有一个没有该应用程序的手册网站,它只是一个关于该产品的网站以及潜在客户如何与我们建立帐户。

鉴于:

www.mycoolsite.com将指向Heroku上的宣传册应用程序。 client1.mycoolsite.comclient2.mycoolsite.comclient3.mycoolsite.com都会指向同一个SaaS应用程序,它可以告诉我们每个请求之间的区别,我应该能够处理,所以他们只看到他们的日期(即设置一个全局client_id或类似的东西)

我该怎么做呢? 我没有用DNS做过很多,所以我对从哪里开始这个很无能为力。

谢谢。

没有汗水。 我们现在在Heroku这样做。 我们碰巧将Godaddy用于域名注册商,但任何DNS控制面板都会让您做同样的事情。

我在这里读到的其他解释有点笼统,以下是具体内容……

heroku的解释非常好,请访问: http : //docs.heroku.com/custom-domains (甚至还有一个非常好的截屏video一步一步显示)

关键是如果你的ROOT域(mycoolsite.com)在Heroku你想创建三个“A”记录,因为它们做了一些容错的交叉魔法。 所以你有一个A记录

 75.101.163.44 75.101.145.87 174.129.212.2 

现在为每个子域创建一个CNAME记录

 www -> proxy.heroku.com client1 -> proxy.heroku.com client2 -> proxy.heroku.com client3 -> proxy.heroku.com 

现在在HEROKu方面,你有两个应用程序吗? “宣传册应用程序”和saas应用程序。

登录,并为每个应用程序转到资源 – >插件 – >获取更多插件 – >自定义域(免费)

对于宣传册应用程序,添加一个域名: www.mycoolsite.com

对于saas应用程序,添加每个客户端,例如:

 client1.mycoolsite.com client2.mycoolsite.com client3.mycoolsite.com 

而已。 像冠军一样工作。 玩得开心。

你要做的是非常可行,而且很容易做到。

您将需要ACNAME记录的组合。 简单地说, A记录将主机名映射到IP地址, CNAME记录充当A记录的别名。

假设您的SaaS应用程序托管在10.0.0.1而您的Heroku应用程序在192.168.0.1 ,并且您希望www.mycoolsite.commycoolsite.com指向相同的IP。

(注意:我从未在Heroku上托管任何内容,因此配置的DNS可能略有不同)

您需要的第一件事是域名本身的A记录。 (我在这里使用了BIND区域文件语法 – 希望您的DNS提供商有一个更简单的管理系统。)

 mycoolsite.com. A 192.168.0.1 ; heroku www CNAME mycoolsite.com ; also heroku 

这两条记录告诉我们mycoolsite.com应该指向Heroku的IP地址,而www.mycoolsite.commycoolsite.com的替代名称,它也将解析为Heroku的IP地址。

现在,让我们为您的SaaS站点设置DNS。 您可以为每个子域设置A记录,但如果您移动服务器,则需要更新许多IP地址。 最简单的选择是配置一条A记录,然后将应用程序的子域指向它:

 sassapp A 10.0.0.1 ; saas app server canonical name client1 CNAME sassapp ; alias client2 CNAME sassapp ; alias client3 CNAME sassapp ; alias 

然后,您可以根据需要添加任意数量的CNAME。

我不认为这是一个问题。 在像subdomain_fu这样的gem的帮助下,Rails过去曾经支持像过去这样的子域。 在Rails 3中,子域支持实际上由Ryan Bates构建并覆盖http://railscasts.com/episodes/221-subdomains-in-rails-3 。 看看那个截屏video,了解从哪里开始。 我相信你需要Heroku http://docs.heroku.com/custom-domains的自定义域加载项。

这不会是个问题。 对于DNS,为mycoolsite.com设置A记录,指向您想要应用程序的服务器。 设置为heroku配置的www.mycoolsite.com的A记录。 现在,您还需要重定向mycoolsite.com没有www的流量,并重定向到www.mycoolsite.com ,这将使您的顶级域名为您的宣传册应用程序提供服务。 一旦请求到达您的应用程序,您可以按照raidfive链接到的教程来帮助您处理应用程序内的子域。