为什么 ruby rails 需要 puma 或 unicorn?
Why does ruby rails need puma or unicorn?
在php中,你只需要apache或nginx。为什么 ruby rails 在已经安装了 nginx 的情况下还需要像 puma 或 unicorn 这样的东西?
这并不完全正确,要使用 apache 运行 PHP,您将需要 apache mod_php or run it as a FastCGI module. For Nginx the latter 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 个应用程序一样简单。
由于您使用过 php 后端,我假设您熟悉 modphp 或 fcgi mod 规则。它们是编译和 运行 php 代码的实际引擎。
rails 上的 Ruby 不能像 php 一样单独 运行。所以需要像 puma 或 phusion passenger 这样的东西来 运行 它。它们被称为应用服务器。
您可以使用应用服务器直接为网站提供服务,但这是推荐的方法。有更合适的替代方案,例如 nginx,它们就是为此目的而发展的。
我在这里找到了一篇很棒的文章
https://www.rubyguides.com/2019/08/puma-app-server/
我还制作了这张图表,其中包含 Web 服务器、应用程序服务器和 Web 框架的职责列表
在php中,你只需要apache或nginx。为什么 ruby rails 在已经安装了 nginx 的情况下还需要像 puma 或 unicorn 这样的东西?
这并不完全正确,要使用 apache 运行 PHP,您将需要 apache mod_php or run it as a FastCGI module. For Nginx the latter 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 个应用程序一样简单。
由于您使用过 php 后端,我假设您熟悉 modphp 或 fcgi mod 规则。它们是编译和 运行 php 代码的实际引擎。 rails 上的 Ruby 不能像 php 一样单独 运行。所以需要像 puma 或 phusion passenger 这样的东西来 运行 它。它们被称为应用服务器。 您可以使用应用服务器直接为网站提供服务,但这是推荐的方法。有更合适的替代方案,例如 nginx,它们就是为此目的而发展的。
我在这里找到了一篇很棒的文章 https://www.rubyguides.com/2019/08/puma-app-server/
我还制作了这张图表,其中包含 Web 服务器、应用程序服务器和 Web 框架的职责列表