【问题标题】:Why does ruby rails need puma or unicorn?为什么 ruby​​ rails 需要 puma 或 unicorn?
【发布时间】:2015-12-02 03:19:55
【问题描述】:

在 php 中,你只需要 apache 或 nginx。为什么已经安装了 nginx 的 ruby​​ rails 还需要 puma 或 unicorn 之类的东西?

【问题讨论】:

  • 你可以在 nginx 代理后面使用独角兽。它可以帮助您处理许多请求

标签: ruby-on-rails ruby nginx unicorn puma


【解决方案1】:

我在这里找到了一篇很棒的文章 https://www.rubyguides.com/2019/08/puma-app-server/

我还用一个非常简单的 Web 服务器、应用程序服务器和 Web 框架的职责列表制作了这个图表

【讨论】:

    【解决方案2】:

    这并不完全正确,要使用 apache 运行 PHP,您将需要 apache mod_php 或将其作为 FastCGI module 运行。对于 Nginx 是后者seems to be the norm

    对于 Ruby,Phusion Passenger 填补了这个角色,并支持 apache 和 nginx。在 apache 上,它像 mod_php 一样作为插件模块运行。对于 Nginx 我不确定。

    但是,您可能希望使用专用的应用程序服务器来运行您的 ruby​​ 应用程序。这就是 Unicorn、Puma 等的用武之地。没有什么可以阻止您为 php 进行类似的设置,但它不太常见。

    在许多情况下使 php 更易于部署的另一件事是大多数发行版和服务器安装都带有 apache 和 nginx 已经设置为处理 php,而您需要为 ruby​​ 自行设置。

    一旦设置好Passenger,部署ruby 应用程序几乎(但不完全)就像部署php 应用程序一样简单。

    【讨论】:

      【解决方案3】:

      由于您使用过 php 后端,我假设您熟悉 modphp 或 fcgi 模块。它们是编译和运行 php 代码的实际引擎。 Ruby on rails 不能像 php 一样独立运行。所以需要像 puma 或 phusion 乘客这样的东西来运行它。它们被称为应用服务器。 您可以使用应用程序服务器直接为网站提供服务,但这是推荐的方法。有更合适的替代品,比如 nginx,就是为了这个目的而发展起来的。

      【讨论】:

        猜你喜欢
        • 2018-11-04
        • 2012-02-03
        • 1970-01-01
        • 2013-07-31
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        相关资源
        最近更新 更多