首先,我不是管理员,所以如果我的问题有点明显/无意义,请原谅我 - 我只是一个 ruby 程序员,想在他的服务器上托管一些应用程序;)
假设我有 3 个应用程序,我想将它们托管在我的 VPS 上。我希望尽可能地将它们分开(分开 ruby/postgres 版本等)。
目前,我正在考虑应该使用哪种设计来实现这一点。最近,我尝试了流浪汉,我真的很喜欢将所有应用程序放在单独的虚拟机中的想法。
我的问题是,将这些站点放在不同的虚拟机中是否不算过度设计?有人能指出这种方法与只有 3 个用户且本地安装了 ruby/postgres 的方法相比的主要优点/缺点吗?我发现了这一点:
- 通过 VM 方法,我可以实现完全分离 - 我可以重新启动/重新安装一个 VM,而不会影响另一个 VM。
- 如果一个虚拟机出现问题,它不应该对另一个虚拟机的性能产生影响
- 我可以在开发和生产环境中拥有完全相同的环境
- VM 方法需要更多的 RAM/CPU 才能运行 3 个操作系统
我的另一个问题是关于路由请求:
假设我将在我的 VPS 上安装 nginx,并且有 4 个域连接到它:
- example.com 和 foo.com => App1
- bar.com => App2
- other.io => App2
- asd.bar.com => App3
有没有简单的方法来设置路由?我梦想着有某种配置文件,我可以在其中指定哪个域应该指向哪个应用程序……
如果没有,有人可以发布一些资源,我可以在哪里找到有关该路由的信息?(我真的很想以某种方式自动化这一点,因此添加另一个站点/ VM 也应该设置该路由)
答案1
我建议你看看http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/
它使用 Passenger 独立版作为反向代理来实现这一点。
我个人不会推荐 VM,因为 RAM 通常是限制因素,并且大多数 VPS 在这方面已经很不足了。