微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 同一rails服务器上多个项目中的多个站点

我在网上搜索过,但我只能找到有关在多个站点之间共享代码以及将数据库分离到隔离模型的信息.这不是我想要的.

我想运行一个单独的rails服务器,一个DNS地址和一个端口 – http://myportal.com – 它将处理其他几个站点 – http://myportal.com/site1,http:// myportal. com / site2等

我希望每个站点都拥有自己的文件夹(和SCM存储库),它自己的数据库,它自己的路由 – 它拥有自己的一切.也就是说 – 我希望能够将每个站点作为独立站点开发 – 这意味着我需要能够以http:// localhost:3000而不是http:// localhost:3000 / site1运行site1站点.

在服务器上,根站点(响应http://myportal.com地址的站点应该是我运行服务器的站点,它应该知道其他站点绝对路径(将在不同的目录中)在服务器上,而不是在根站点的子目录中)并为它们提供路由信息 – 但它也应链接到其他站点routes.rb文件.这意味着如果我去地址http://myportal.com/ site1 / books / root站点应该处理http://myportal.com/site1,而site1应该处理/ books /.根站点不需要知道其他站点的内部路由结构.

这可能吗?现在我正在运行Windows Server 2008服务器上的gem(来自命令行的rails服务器)附带的rails服务器,但我愿意安装另一台服务器,如果这是完成我描述的目标所需要的.

提前致谢!

解决方法

如果配置正确,您应该可以使用Apache或Nginx以及可能的IIS执行此操作.我最熟悉Apache和灵活的 mod_rewritemod_proxy组件,可以促进这一点.

您的想法是将http://example.com/重写为http://example.com:3000/,将http://example.com/site2重写为http://example.com:3001/site2,依此类推.

使用Passenger和一些巧妙使用VirtualHost指令也可以做到这一点,但你可能不得不摆弄以获得适合你的配置.请记住,重写标头以在内部路由不会影响服务器发出的结果HTML.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐