为什么红宝石铁轨需要美洲狮或独角兽?

时间:2015-09-06 13:07:40

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

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

2 个答案:

答案 0 :(得分:10)

这不完全正确,要使用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应用程序一样简单。

答案 1 :(得分:2)

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