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