【问题标题】:Why do I need Nginx with Puma?为什么我需要 Nginx 和 Puma?
【发布时间】:2018-11-04 02:46:13
【问题描述】:

我正在将 Rails 应用程序部署到生产环境。看起来 Puma 速度很快,可以在 Web 服务器中处理我想要的许多事情。

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

【问题讨论】:

标签: ruby-on-rails nginx puma


【解决方案1】:

Nginx 是 Web 服务器,puma 是应用程序服务器。 两者都有自己的优势,你需要两者。

一些例子:

  • 静态重定向 - 您可以设置您的 nginx 以将所有 http 流量重定向到与 https 相同的 URL。这样,此类微不足道的请求将永远不会到达您的应用服务器。

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

  • 提供静态资产 - 建议通过网络服务器提供静态资产(Rails 中 /public/ 端点中的那些),而无需加载您的应用服务器。

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

【讨论】:

    【解决方案2】:

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

    每当有来自客户端的请求时,它都会被 nginx 接收,然后转发到这里的 Puma 应用服务器。

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

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

    如果您要在 Web 应用程序中包含认证,那么您可以在此处提供从 http 到 https 的重定向,只有在重定向到 https 后才会访问应用服务器。

    如果你打算使用 Puma,那么你必须确保服务器有效地使用资源,但如果你使用 nginx,那么它会自己处理它。

    您可以获取更多信息here

    【讨论】:

    • 答案中的链接指的是陈旧的数据,服务器的描述是在 2010 年编写的,并在 2013 年更新(不完全)。从那时起情况发生了很大变化。
    猜你喜欢
    • 2021-08-14
    • 2015-12-02
    • 2015-12-24
    • 2020-11-21
    • 2012-02-03
    • 1970-01-01
    • 2019-06-09
    • 2012-05-21
    • 2012-09-22
    相关资源
    最近更新 更多