为什么我需要 Nginx 和 Puma?
Why do I need Nginx with Puma?
我正在将 Rails 应用程序部署到生产环境。看起来 Puma 速度很快并且可以处理我想要在 Web 服务器中处理的许多事情。
我想知道我是否需要为 Nginx 烦恼,如果只使用 Puma 我会错过什么?
Nginx 是一个网络服务器,puma 是一个应用程序服务器。
两者各有优势,两者都需要。
一些示例:
静态重定向 - 您可以设置 nginx 将所有 http
流量重定向到与 https
相同的 url。这样,这种微不足道的请求将永远不会到达您的应用服务器。
分段上传- Nginx 更适合处理分段上传。 Nginx 将合并所有请求并将其作为单个文件发送给 puma。
提供静态资产- 建议通过网络服务器提供静态资产(rails 中 /public/
端点中的资产)而不加载您的应用程序服务器。
nginx 内置了一些基本的 DDoS 保护。
Web 服务器和应用程序服务器之间存在显着差异。
Nginx(Web 服务器)和 Puma(应用服务器)将同时处理您应用程序中的请求。
每当有来自客户端的请求,它都会被nginx接收,然后转发给应用服务器,这里是Puma。
将 nginx 作为 Web 服务器将帮助您更有效地处理多个请求。作为多线程服务器,它将请求分配到多个线程中,使您的应用程序更快。
正如 vendant 所提到的,您可以使用 Web 服务器提供静态页面,因为这是一种更好的方法。
如果您要为您的 Web 应用程序添加认证,那么您可以在此处提供从 http 到 https 的重定向,只有在重定向到 https 后才会访问应用服务器。
如果您要使用 Puma,那么您必须确保服务器有效地使用资源,但如果您要使用 nginx,那么它会自行处理。
您可以获得更多信息here。
我正在将 Rails 应用程序部署到生产环境。看起来 Puma 速度很快并且可以处理我想要在 Web 服务器中处理的许多事情。
我想知道我是否需要为 Nginx 烦恼,如果只使用 Puma 我会错过什么?
Nginx 是一个网络服务器,puma 是一个应用程序服务器。 两者各有优势,两者都需要。
一些示例:
静态重定向 - 您可以设置 nginx 将所有
http
流量重定向到与https
相同的 url。这样,这种微不足道的请求将永远不会到达您的应用服务器。分段上传- Nginx 更适合处理分段上传。 Nginx 将合并所有请求并将其作为单个文件发送给 puma。
提供静态资产- 建议通过网络服务器提供静态资产(rails 中
/public/
端点中的资产)而不加载您的应用程序服务器。nginx 内置了一些基本的 DDoS 保护。
Web 服务器和应用程序服务器之间存在显着差异。 Nginx(Web 服务器)和 Puma(应用服务器)将同时处理您应用程序中的请求。
每当有来自客户端的请求,它都会被nginx接收,然后转发给应用服务器,这里是Puma。
将 nginx 作为 Web 服务器将帮助您更有效地处理多个请求。作为多线程服务器,它将请求分配到多个线程中,使您的应用程序更快。
正如 vendant 所提到的,您可以使用 Web 服务器提供静态页面,因为这是一种更好的方法。
如果您要为您的 Web 应用程序添加认证,那么您可以在此处提供从 http 到 https 的重定向,只有在重定向到 https 后才会访问应用服务器。
如果您要使用 Puma,那么您必须确保服务器有效地使用资源,但如果您要使用 nginx,那么它会自行处理。
您可以获得更多信息here。