繁体   English   中英

为什么ruby rails需要puma或者unicorn?

[英]Why does ruby rails need puma or unicorn?

在 php 中,你只需要 apache 或 nginx。 为什么在已经安装了 nginx 的情况下,ruby rails 还需要像 puma 或 unicorn 这样的东西?

这不完全正确,要使用apache运行PHP,您将需要apache mod_php或将其作为FastCGI模块运行。 对于Nginx来说,后者似乎是常态

对于Ruby,有Phusion Passenger填充这个角色,并支持apache和nginx。 在apache上,它以mod_php的方式作为插件模块运行。 对于Nginx,我不确定。

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

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

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

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

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

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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM