Ruby on rails 一个rails应用程序上有更多虚拟主机

Ruby on rails 一个rails应用程序上有更多虚拟主机,ruby-on-rails,virtualhost,Ruby On Rails,Virtualhost,我希望通过更多虚拟主机访问一个rails应用程序。不同的虚拟主机在数据库、图像、样式表以及某些情况下视图的布局方面会有所不同。对于通过不同虚拟主机访问的一个rails代码来实现为多个应用程序提供服务,您有什么建议 已编辑 为了更好地说明我的设想,我添加了以下内容: 我更喜欢rails根据主机名来区分必须使用哪些db/样式/图像/布局 可能有不同的rails应用程序在运行,但在同一代码之上 数据库连接可能在应用程序启动期间建立 我想知道rails应用程序应该识别哪个层的主机?它应该在中间件上、

我希望通过更多虚拟主机访问一个rails应用程序。不同的虚拟主机在数据库、图像、样式表以及某些情况下视图的布局方面会有所不同。对于通过不同虚拟主机访问的一个rails代码来实现为多个应用程序提供服务,您有什么建议

已编辑

为了更好地说明我的设想,我添加了以下内容:

  • 我更喜欢rails根据主机名来区分必须使用哪些db/样式/图像/布局
  • 可能有不同的rails应用程序在运行,但在同一代码之上
  • 数据库连接可能在应用程序启动期间建立

我想知道rails应用程序应该识别哪个层的主机?它应该在中间件上、启动脚本中还是其他地方?

我不知道rails,但我知道如何在Django中实现它。我怀疑核心逻辑是否如此不同

我会告诉服务器要接受哪些主机(如果需要,包括通配符),然后告诉我的webapp查看请求域(从webserver传递)


如何从这一点上改变各种事情取决于您。

我不知道rails,但我知道如何在Django中做到这一点。我怀疑核心逻辑是否如此不同

我会告诉服务器要接受哪些主机(如果需要,包括通配符),然后告诉我的webapp查看请求域(从webserver传递)

如何从这一点上改变各种事情取决于您。

对于数据库:

可以在管线中设置特殊参数,如:

/:客户端/:控制器/:操作

然后使用params[:client]手动调整ActiveRecord::Base 在过滤器之前从ApplicationController(我已经完成了这项工作,它可以正常工作)

请参见此处的示例代码:

对于样式表、图像…: 使用ApacheO nginx虚拟主机分散公共/映像和其他内容(yiou应该这样做,直接为没有rails的用户提供服务),并选择从中选择它们。 (为此,您可能需要mod_rewrite o等效软件)

布局可能有点棘手,最好有一个公共erb,根据参数[:client]明智地加载部分内容

我希望它能有所帮助。

对于数据库:

可以在管线中设置特殊参数,如:

/:客户端/:控制器/:操作

然后使用params[:client]手动调整ActiveRecord::Base 在过滤器之前从ApplicationController(我已经完成了这项工作,它可以正常工作)

请参见此处的示例代码:

对于样式表、图像…: 使用ApacheO nginx虚拟主机分散公共/映像和其他内容(yiou应该这样做,直接为没有rails的用户提供服务),并选择从中选择它们。 (为此,您可能需要mod_rewrite o等效软件)

布局可能有点棘手,最好有一个公共erb,根据参数[:client]明智地加载部分内容


希望有帮助。

谢谢@Fer的回答。我不希望客户端名称在URL中可见。我很高兴看到rails从主机名解析客户机。然而,分歧/公开听起来很有趣。。我应该去看看。谢谢@Fer的回答。我不希望客户端名称在URL中可见。我很高兴看到rails从主机名解析客户机。然而,分歧/公开听起来很有趣。。我应该去看看。