为什么Ruby on Rails需要Puma或Unicorn?

6
在PHP中,你只需要Apache或Nginx。为什么Ruby on Rails还需要像Puma或Unicorn这样的东西,当已经安装了Nginx?

你可以在nginx代理后面使用unicorn。它可以帮助你处理许多请求。 - Igor Pavlov
3个回答

10

这并不是完全正确的,要在Apache上运行PHP,则需要使用Apache mod_php 或者将其作为FastCGI模块运行。对于Nginx来说,后者似乎是惯例

对于Ruby来说,有一个名为Phusion Passenger 的工具可以发挥该作用,并支持apache和nginx。在apache上,它像mod_php一样作为插件模块运行。对于Nginx,我不确定。

但是,您可能希望使用专用应用程序服务器运行Ruby应用程序。这就是Unicorn、Puma等工具派上用场的地方。没有什么阻止您为PHP执行类似的设置,但这种情况较少见。

在许多情况下,使PHP更易于部署的另一件事是,大多数发行版和服务器安装都已经设置好了处理PHP的apache和nginx,而对于Ruby,您需要自己进行设置。

一旦设置好了,Passenger使得部署Ruby应用程序几乎(但并非完全)与部署PHP应用程序一样简单。


3

既然您已经从事过php后端开发,我认为您应该熟悉modphp或fcgi模块。它们是编译和运行php代码的实际引擎。 Ruby on Rails不能像php一样独立运行。因此需要像puma或phusion passenger这样的东西来运行它。它们被称为应用服务器。 您可以使用应用服务器直接提供网站服务,但这是不推荐的方法。有更适合的替代方案,比如nginx,它专门为此目的而演变。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接