2017-03-09 76 views
2

我读过here,说明Unicorn/Gunicorn HTTP服务器“不擅长服务静态文件”,而且Nginx更适合静态内容。有人可以解释为什么这是吗?为什么Unicorn/Gunicorn的静态内容缓慢?

我理解Nginx和Gunicorn的专业角色,并且Nginx是一个反向代理,并且如果需要,Gunicorn实际上可以提供静态文件。

+0

我一直在阅读独角兽设计规范文档[这里](https://bogomips.org/unicorn/)和[这里](https://bogomips.org/unicorn/DESIGN.html)。与Nginx相比,Gunicorn可能仅仅是“未优化”吗?例如。它不使用'sendfile()',它允许直接服务器 - >客户端传输器? – geonaut

回答

2

主要是因为独角兽并不是用来解决涉及档案给客户端的问题套件:

独角兽是快速的客户和Unix服务器。什么是快速客户端? 快速客户端是另一种应用程序或服务器,可以快速与Rack服务器连接,而不会出现太多延迟。独角兽不如 独立服务器:它不是用来处理网络连接上发生的 的缓慢请求。它依靠Nginx或Apache处理网页请求的缓冲和排队,因此它不必 担心并发和事件驱动的编程。 Unicorn基本上是 ,nginx和rack之间的粘连,其中Nginx是快速的 客户端。

Source

考虑,你必须在56K调制解调器尝试观看视频400MB 100名旅客的情况。你真的不想让你的应用程序在内存中保存100个实例,或者将文件加载到内存中等。Nginx的设计考虑了这种情况。

+0

好的,谢谢@coreyward,所以如果我理解正确,好的服务文件是一个需要能够适应不同连接速度和潜在的中断连接等功能。独角兽与快速客户端(即本地主机)工作,与迟延的远程连接很好地发挥。我认为当我说Unicorn对服务文件“没有优化”时,我觉得自己有点正确。 – geonaut