区分nginx和瘦

时间:2010-09-09 14:48:11

标签: ruby-on-rails ruby nginx thin

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

谢谢!

3 个答案:

答案 0 :(得分:25)

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

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

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

Nginx / Thin与Apache / Mongrel之类的好处是Nginx / Thin可以通过unix套接字直接通信,消除了通过tcp / ip堆栈进行通信的开销。

答案 1 :(得分:4)

Thin是一个应用服务器,而Nginx是一个Web服务器。

来自http://www.javaworld.com/javaqa/2002-08/01-qa-0823-appvswebserver.html

应用程序服务器通过各种协议(可能包括HTTP)向业务逻辑公开客户端应用程序。虽然 Web服务器主要处理发送HTML 以在 Web浏览器中显示,但应用程序服务器提供对业务逻辑供客户端应用程序使用。应用程序可以像调用对象上的方法(或程序世界中的函数)一样使用此逻辑。

答案 2 :(得分:2)

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

这样可以很容易地将可笑的快速静态内容与所选的应用程序服务器(在编程语言之间变化)混合,所有这些都来自同一地址:port。