【发布时间】:2019-11-05 20:25:26
【问题描述】:
我有几个不同的小型网站,对于每个网站,我都有一个爱好级别的托管计划,它提供的带宽/存储空间比其中任何一个单独需要的都要多。此外,每次我对我使用的堆栈进行更改时,例如当我开始使用新版本的 gem 时,我都必须分别更新它们,并且我必须为它们中的每一个运行单独的测试。还有每个都有相同的表,例如 Admin 和 Error。
所以我开始考虑是否可以将它们合并到一个应用程序中,也许可以使用不同的控制器文件夹,这些文件夹被不同的域名视为根目录。任何人都有从同一代码库托管不同网站的经验吗?这甚至可能吗?
更新:
为了添加更多上下文,我想在一台服务器上托管整个内容,可能使用一个数据库,但具有多个控制器文件夹,每个文件夹代表不同的网站和不同的域。例如,我目前有 smallapp.com 和 lilsite.com,我为两者支付相同的托管计划(这超出了他们的需求),并且它们都有相同的 Error 模型,我每当我开始使用新的 gem 版本时更新两者。他们也使用相同的 gems 和库。理想情况下,我应该有一个名为superapp 的应用程序,它只托管同一托管计划的一个实例,共享一个 SSL 证书,该应用程序将有两个名为 smallapp 和 lilsite 的控制器文件夹。路由“www.smallapp.com”会以某种方式指向 /smallapp/home.html 路径,反之亦然。 smallapp.com 和 lilsite.com 上的用户都可以在同一个数据库中创建错误,但他们永远无法查看对方控制器中的文件。
【问题讨论】:
-
如果模型/控制器或多或少相同,您可以查看
Apartmentgem 将您的站点拆分为多个单独的站点。但是,一旦代码中存在一些差异,您最好还是将它们作为单独的应用程序保留。管理单个更改将变得非常麻烦。您可以考虑将应用程序的一部分移动到微服务中,每个单独的应用程序都可以利用这些微服务。例如用于管理 cmets 或登录。
标签: ruby-on-rails dns routes namespaces hosting