gpt4 book ai didi

ruby-on-rails - 不同 Ruby on Rails 生产 Web 服务器之间的建议(和差异)

转载 作者:行者123 更新时间:2023-12-03 01:40:19 26 4
gpt4 key购买 nike

很快,我计划将我的第一个 Ruby on Rails 应用程序部署到生产环境,我什至选择了一个 Web 主机,该主机具有您期望从 RoR 提供商处获得的所有托管服务器和 Capistrano 优点。

该提供商允许使用 Mongrel、Thin、Passenger 和 FastCGI Web 服务器,这看起来非常灵活,但老实说我不知道​​它们之间的区别。我对他们进行了一些研究,但是当他们开始谈论功能和最大同时请求数时,一切都变得有点过分了 - 而且这些数据似乎根据发布者的不同而有所不同。

我看过 Passenger(表面上)——这对我来说确实很有吸引力——但我的印象是 Passenger 并不是真正的网络服务器,而更像是 Apache 或 nginx 之上的一层并管理应用程序的衍生实例(如 Mongrel 集群)。

任何人都可以用外行术语来告诉我这些差异,以便我可以做出明智的选择(因为任何看过《印第安纳琼斯和最后的十字军东征》的人都知道如果你选择不当会发生什么)。

最佳答案

简短回答

使用 Apache/Nginx + Passenger。客运is fast 、可靠、易于配置和部署。 Passenger 已被大量大型 Rails 应用采用,包括Shopify .

alt text
(来源:modrails.com)

长答案

忘记 CGI 和 FastCGI。一开始没有其他选择,因此运行 Rails 的唯一方法是使用 CGI 或更快的浏览器 FastCGI。现在几乎没有人在 CGI 下运行 Rails。最新的 Rails 版本不再提供 .cgi 和 .fcgi 运行程序。

Mongrel 已成为广泛采用的解决方案,是 CGI 和 FCGI 的最佳替代品。许多站点仍然使用 Mongrel 和 Mongrel 集群,但是 Mongrel 项目几乎已经死亡,许多项目已经转移到其他解决方案(主要是 Passenger)。此外,基于 Mongrel 的架构非常难以配置,因为它需要前端代理(thin、ngnix)和由多个 Mongrel 实例组成的后端架构。

《乘客》自发布以来就受到广泛关注。许多项目出于多种原因从 Mongrel 转向 Passenger,包括(但不限于)易于部署、可维护性和性能。此外,Passenger 现在可用于 Apache 和 Ngnix。

使用 Passenger 最简单的方式是 Apache + Passenger 配置。一个 Apache 安装和多个 Passenger 进程。

如果需要更好的性能和可扩展性,可以使用Ngnix作为前端代理,将所有Rails请求转发到多个后端服务器,每个后端服务器由Apache + Passenger组成。我不会在这里讨论技术细节,该解决方案旨在供高流量的 Rails 项目使用。

更复杂的解决方案包括不同级别的组合,包括 http 代理和服务器。您可以通过阅读 GitHub 中的一些内部详细信息了解我在说什么。和 Heroku .

目前,Passenger 是大多数 Rails 项目的最佳答案。

关于ruby-on-rails - 不同 Ruby on Rails 生产 Web 服务器之间的建议(和差异),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com