为什么Unicorn / Gunicorn缓慢提供静态内容?

时间:2017-03-09 13:07:18

标签: python django nginx gunicorn unicorn

我已阅读here,知道Unicorn / Gunicorn HTTP服务器在提供静态文件方面不是很擅长,并且Nginx更擅长提供静态内容。有人可以解释为什么会这样吗?

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

1 个答案:

答案 0 :(得分:2)

主要是因为Unicorn并非旨在解决向客户提供文件所涉及的一系列问题:

  

Unicorn是快速客户端和Unix的服务器。什么是快速客户?   快速客户端是可以与之交互的另一个应用程序或服务器   Rack服务器很快,没有太多延迟。独角兽并不好   独立服务器:它不是为处理慢速请求而设计的   通过网络连接发生。它依赖于Nginx或Apache来处理   Web请求的缓冲和排队,以便它不必   担心并发和事件驱动的编程。独角兽是   基本上是nginx和机架之间的粘合剂,其中Nginx是快速的   客户端。

Source

考虑一个案例,在56k调制解调器上有100个访问者试图查看400mb视频。你真的不希望在内存中保存100个应用程序实例,或者将文件加载到内存等等.Nginx的设计考虑了这种类型的场景。