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