我有几个不同的小型网站,并且每个网站都有一个业余爱好的托管计划,该计划提供的带宽/存储量超过了它们各自需要的带宽/存储量。此外,每次更改所使用的堆栈时,例如,当我开始使用较新版本的gem时,都必须分别更新它们,并且必须分别对它们进行单独的测试。每个表也都有相同的表,例如Admin和Error。
因此,我开始考虑是否有可能将它们组合到一个应用程序中,也许使用单独的Controller文件夹,这些文件夹被不同的域名视为根。任何人都拥有从同一代码库托管不同网站的经验吗?这有可能吗?
更新:
要添加更多上下文,我想将整个内容托管在一台服务器上,可能带有一个数据库,但要具有多个控制器文件夹,每个文件夹代表一个不同的网站和一个不同的域。例如,我目前有smallapp.com和lilsite.com,并且我为两者都支付了相同的托管计划(这对于他们的需求来说都是多余的),并且它们都有相同的Error
模型,每当我开始使用新的gem版本时,我都会进行更新。他们还使用相同的gem和库。理想情况下,我将拥有一个名为superapp
的应用程序,该应用程序仅托管同一托管计划的一个实例,共享一个SSL证书,该应用程序将具有两个名为smallapp
和lilsite
的控制器文件夹。路由“ www.smallapp.com”将以某种方式指向/smallapp/home.html路径,反之亦然。 smallapp.com和lilsite.com上的用户都可以在同一数据库中创建错误,但他们永远无法在其他控制器中查看文件。
答案 0 :(得分:1)
在不了解整个上下文的情况下,很难提供最佳解决方案,但是可能的。
是的,@ bo-oz是正确的,您可以为此使用Apartment gem。我们目前在我工作的地方使用它。
您也可能只有两台服务器部署相同的存储库/代码库。
具体来说,您可以有2个Heroku服务器,它们部署在同一github存储库之外。然后有2个单独的域。部署时,只需将两个服务器都部署在master分支之外即可。
答案 1 :(得分:0)
有可能。
所有域都必须指向相同的IP地址,即您服务器的地址。为此,您需要更改域的DNS设置。
Web服务器(例如Nginx)必须将所有请求(来自所有域)定向到同一Rails应用程序。
在Rails应用程序中,路由必须基于域指向不同的控制器。 request.domain
在“ routes.rb”文件中可用。有关更多信息,请参见此问题Rails routing to handle multiple domains on single application
请记住,来自不同域的请求将不会共享同一会话。那可能不是您想要的。