红宝石中的rack是什么?红宝石中的美洲狮是什么



根据定义,puma是一种web服务器,机架是web服务器和应用服务器之间的接口。

但是,许多视频提到机架是web框架和web服务器之间的接口。那么,我可以解释一下,我们使用web框架来构建应用程序,所以机架是web框架和web服务器之间的接口吗?

另一个问题是,如果puma是一种web服务器,我可以用Apache或Nginx来代替它吗?

Puma是一个应用服务器,更具体地说是一个Rack应用服务器。(不仅仅有Puma:Unicorn、Passenger等。还有用于不同接口的应用程序服务器;例如,Tomcat和JBoss是Java应用程序服务器。)应用程序服务器接受HTTP请求,将其解析为应用程序语言的结构,将其交给应用程序,并等待响应对象,然后返回给客户端。

Nginx/Apache是通用的web服务器。Apache不知道如何为Rack应用程序提供服务,Puma也不知道如何做Nginx/Apache所做的一系列其他事情(例如CGI脚本、URL重写、代理、平衡、黑名单…)

Rack是Ruby的一个库,它接受来自应用服务器的解析HTTP请求,通过可配置的中间件堆栈(如会话处理)将请求对象传递给处理程序,并将响应对象返回到应用服务器,从而简化Ruby中的web开发。您可以直接执行Rack应用程序(或者更确切地说,使用安装有Rack的非常简单的服务器),但不建议在外部开发,这是"适当"应用程序服务器的用武之地:他们知道如何保持应用程序的活力,在应用程序失效时重新启动,确保有预定数量的线程在运行,诸如此类。

因此,通常情况下,您让Web服务器接受连接,然后使用简单的反向代理将适当的请求传递给您的Rack应用程序,该应用程序在Rack应用服务器内执行。这将使您从所有相关部件中获益。

最新更新