Ruby 网络服务器与 nginx 等其他服务器之间的区别

Differences between Ruby web servers and others like nginx

这个有点傻,但请耐心等待。

HAProxy、apache/nginx、机架(thin、puma、mongrel、webrick)和应用服务器之间有什么区别?

Rack 似乎总是使用上述网络服务器之一,那么为什么它从来没有使用过 nginx?似乎 nginx 是其他类型的服务器。

Rack 是 Ruby 中应用服务器的一个接口,一个规范。这些应用程序服务器通常通过 TCP 端口或 unix 套接字接收 HTTP 请求和 return HTTP 响应。 Ruby 网络应用程序将利用实现 Rack 规范(thin、puma、unicorn 等)的应用程序服务器之一。出于各种原因,您通常不会将应用程序服务器直接暴露给互联网,其中最重要的原因之一是这些应用程序服务器旨在成为应用程序代码和 http 之间的桥梁,而不是经得起广泛开放的互联网.因此,应用程序服务器通常有一个 Web 服务器,如 nginx 或 apache,位于其前面。在端口 80 上将 http 请求传入 nginx,然后让 nginx 将这些请求分发到不同端口上的一个或多个机架应用程序服务器 运行 是很常见的。