我想知道是否有人可以解释如何平衡 Rails 应用程序。
两个问题:
它甚至有助于让单独的 Rails 应用程序从同一个专用服务器中的同一个数据库中读取吗?
我了解 Apache 可以平衡负载安装一些额外的模块?我对吗?我们怎样才能做到这一点?(请提供假人的解释)
我想知道是否有人可以解释如何平衡 Rails 应用程序。
两个问题:
它甚至有助于让单独的 Rails 应用程序从同一个专用服务器中的同一个数据库中读取吗?
我了解 Apache 可以平衡负载安装一些额外的模块?我对吗?我们怎样才能做到这一点?(请提供假人的解释)
我会看看使用Passenger——它在很大程度上取代了Mongrel并处理运行多个Rails实例。
Rails 是单线程的,因此在使用 Mongrel 进行部署时,在安装了 mod_proxy 的 Apache 前端的集群中运行多个 Mongrel 实例是“正常的”。这让 Apache 可以分派多个请求以释放应用程序实例。
任何合理的数据库都是为高水平的并发请求而设计的,因此应该能够处理大量的应用程序实例。
根据您的服务器资源,运行多个 Mongrel 实例有很大的好处——它实际上是处理并发请求的唯一方法。
即使在小内存主机(比如 512mb)上,如果您的 Rails 应用程序使用 100mb 内存,您将能够轻松地运行多个实例而不会耗尽资源 - 然后您可以处理与实例一样多的并发请求。
Sliecehost 有一些很棒的文章,例如:http ://articles.slicehost.com/2009/4/17/centos-apache-rails-and-mongrels