区分nginx和瘦

Chr*_*ger 13 ruby ruby-on-rails nginx thin

这是关于nginx和rails环境中的瘦身的新手问题.在轨道上阅读/学习时,我经常听说nginx和thin是一个很好的组合,适用于rails网站.在阅读每个描述时,他们都将自己描述为Web服务器,因此我对组合带来的内容感到困惑.如果有人可以简要描述它们是什么以及它们如何相互补充,我将非常感激.

谢谢!

Ala*_*ody 25

典型的小型应用程序部署将在一台计算机上运行Nginx(或Apache)和少数Thin(或Mongrel,Unicorn等)服务器.

Nginx接收每个请求.然后它直接提供和静态文件(css,js,图像,缓存的东西).如果请求需要处理它,则将请求交给rails进程(Thin).

这样,您(相对)慢的应用程序服务器就可以从提供静态文件中解放出来,而您的Web服务器正在提供一种负载平衡.

Nginx/Thin比Apache/Mongrel这样的好处是Nginx/Thin可以通过unix套接字直接通信,消除了通过tcp/ip堆栈进行通信的开销.

  • 更直接地回答这个问题:Nginx是一个Web服务器.它提供静态文件并将非静态请求路由到应用程序服务器.Thin是一个应用程序服务器,它实际上使用您的Rails/Rack应用程序处理请求. (10认同)

Mar*_*tos 2

出于无知(我从未使用过 Thin),将 nginx 和应用程序服务器混合在一起是很正常的,使用 nginx 提供静态内容并充当应用程序服务器的反向代理。

这使得很容易将极快的静态内容服务与所选的应用程序服务器(不同的编程语言有所不同)混合在一起,所有这些都来自相同的地址:端口。