Apache ReverseProxy 到 Passenger Standalone 是否是可接受的生产部署?

Apache ReverseProxy 到 Passenger Standalone 是否是可接受的生产部署?

我需要使用 RVM 和 gemsets 部署 Rails 3 应用,并期待“公共”流量(即这不是仅限内部使用的应用)。我还必须使用 Apache 作为我的应用的公共接口。

我了解 Passenger Standalone 可以帮助完成 rails/RVM 端,并且我已经在我的开发环境中成功设置了它。

我的问题是,这种设置对于生产部署有多可行。通过配置为ReverseProxyPassenger 驱动的 Rails 应用程序的 Apache 进行部署会产生问题吗?由于我现在正在设计生产部署,我想了解我是否应该花额外的时间来设置连接到 Apache 的 Passenger,并乘客与运行我的 Rails 应用程序的乘客独立实例进行通信。

因此,我正在寻找以下三个答案之一:

  • Apache 反向代理到 Passenger Standalone 通常没问题
  • 你应该不是使用 Apache/Passenger 独立配置,但也在 Apache 端设置 Passenger
  • 你的整个设置都是错误的,请阅读全文(并包含“FM”链接)

答案1

虽然我已经在负载较轻的站点(没有不同的非 Passenger 后端)使用了 Apache 的反向代理,但我没有在生产中使用那个特定的设置。

我发现 Apache 反向代理的唯一(轻微)缺点是,如果它检测到后端已关闭,则在后端重新启动后需要一段时间,Apache 才会开始再次向其转发请求。

如果您有能力为 Passenger 配置 Apache 服务器,那么这并不难,而且配置完成后,您不需要再管理 Apache(Passenger 更新除外)。更新 Rails 应用程序时,只需触摸 tmp/restart.txt 文件即可重新启动 Passenger 实例。

相关内容