为什么我需要与Puma一起使用Nginx?

gyl*_*laz 11 ruby-on-rails nginx puma

我正在将Rails应用程序部署到生产环境中.似乎Puma很快并且在Web服务器中处理我想要的许多东西.

我想知道我是否需要打扰Nginx,如果只是使用Puma,我会错过什么?

ved*_*ant 20

Nginx是一个Web服务器,puma是一个应用程序服务器.两者都有其优点,你需要两者兼顾.

一些例子:

  • 静态重定向 - 您可以设置您的nginx以将所有http流量重定向到相同的URL https.这样一些琐碎的请求永远不会打到您的应用服务器.

  • 分段上传 - Nginx更适合处理分段上传.Nginx将结合所有请求并将其作为单个文件发送给puma.

  • 提供静态资产 - 建议/public/在不加载应用服务器的情况下通过网络服务器提供静态资产(在rails 中的端点).

  • nginx中内置了一些基本的DDoS保护.


Gag*_*pta 7

Web服务器和应用程序服务器之间存在显着差异。Nginx(Web服务器)和Puma(App服务器)将同时处理您的应用程序中的请求。

每当有来自客户端的请求时,nginx都会接收到该请求,然后将其转发到此处的Puma应用服务器。

将nginx用作Web服务器将帮助您更有效地处理多个请求。作为多线程服务器,它将请求分配到多个线程中,从而使您的应用程序更快。

正如供应商所提到的,您可以使用Web服务器来提供静态页面,因为这是一种更好的方法。

如果要在Web应用程序中包括证书,则可以在此处提供从http到https的重定向,只有在重定向到https之后,该重定向才会在应用服务器上显示。

如果要使用Puma,则必须确保服务器有效地使用资源,但是如果要使用Nginx,则它将由它自己来处理。

您可以在此处获得更多信息。

  • 答案中的链接指的是陈旧数据,服务器的描述是在 2010 年编写的,并在 2013 年更新(未完全更新)。自那时以来,情况发生了很大变化。 (3认同)