gpt4 book ai didi

ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:30 24 4
gpt4 key购买 nike

Nginx 在生产中的重要性通常基于它为慢速客户端提供服务的能力;在 RESTful API 的设置中,它似乎是生产堆栈的一个不必要的层,尤其是 Puma(不像广泛使用的 unicorn 可以处理 nginx 工作)。

Puma can allow multiple slow clients to connect without requiring a worker to be blocked on the request transaction. Because of this, Puma handles slow clients gracefully. Heroku recommends Puma for use in scenarios where you expect slow clients. ref

如何在不使用 nginx 作为反向代理的情况下使 Puma 在同一端口上为多个 ruby​​ 应用程序提供服务?

最佳答案

你不能,Puma 是一个应用服务器。

在 TCP/IP 堆栈上,每个应用程序都被分配到一个端口,以便接收到的数据包可以代理到需要它的应用程序。想象一下,多个应用程序位于同一个端口上:应用程序无法知道接收数据包是真正针对它还是同一端口上的另一个应用程序。

这就是我们使用代理和反向代理的原因。作为反向代理的 Nginx 将请求的 URL 解析为应用程序并将请求代理给它。它是一个单一的应用程序,它接收给定端口上的所有传入数据包,然后将它们代理到另一个端口或套接字上的应用程序。

要在同一个端口上有多个 Web 服务器,您必须在它们前面有一个反向代理,例如 Nginx 或 HAproxy。

关于ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com