我正在创建一个类似博客的应用程序,我们允许客户使用他们自己的自定义域名,例如domainexample.com,因此每个不同的域都提供相同的应用程序,但内容不同。
但是我正在努力弄清楚如何在生产服务器上进行设置。如果我的生产服务器有一个静态IP,那么我肯定可以在每个域上设置一条记录到生产服务器的ip。
但是如果生产服务器没有静态IP怎么办?例如,如果我们想在heroku或engineyard上托管它?我在网上看到了一些需要使用重写规则的解决方案,但它们需要重新启动服务器,并且在新用户注册时无法真正动态添加和删除新域。有没有人知道让多个域命中一个rails应用程序的任何好解决方案?
答案 0 :(得分:3)
Heroku不是你唯一的选择。如果您可以预测客户的域名,请查看this。如果你不能,Rails路由constraints和上面链接的问题的接受答案的组合应该可以让你到达你需要去的地方。听起来你不想重新启动服务器 - 因此不需要编辑路由。您也可以将domains作为模型的一部分,或者在controller level区分,或在Web服务器层中使用URL重写。
正如我所看到的,问题在于Rails在这里打破了对配置的咒骂。有许多从多个域提供服务的方式。这可能是一种内在的复杂性,但Rails指南至少可以记录一种可能的解决方案。