我已阅读here,知道Unicorn / Gunicorn HTTP服务器在提供静态文件方面不是很擅长,并且Nginx更擅长提供静态内容。有人可以解释为什么会这样吗?
我理解Nginx和Gunicorn的专门角色,而且Nginx是一个反向代理,如果有必要,Gunicorn实际上可以提供静态文件。
答案 0 :(得分:2)
主要是因为Unicorn并非旨在解决向客户提供文件所涉及的一系列问题:
Unicorn是快速客户端和Unix的服务器。什么是快速客户? 快速客户端是可以与之交互的另一个应用程序或服务器 Rack服务器很快,没有太多延迟。独角兽并不好 独立服务器:它不是为处理慢速请求而设计的 通过网络连接发生。它依赖于Nginx或Apache来处理 Web请求的缓冲和排队,以便它不必 担心并发和事件驱动的编程。独角兽是 基本上是nginx和机架之间的粘合剂,其中Nginx是快速的 客户端。
考虑一个案例,在56k调制解调器上有100个访问者试图查看400mb视频。你真的不希望在内存中保存100个应用程序实例,或者将文件加载到内存等等.Nginx的设计考虑了这种类型的场景。