Gunicorn和Nginx之间的区别

时间:2012-05-24 07:03:01

标签: nginx gunicorn

这是一个初学者的问题,但我无法理解Gunicorn和Nginx之间的抽象概念。我不是在寻找一个详细的答案,只是在高层次上每个人扮演的角色是什么?他们如何互动?

2 个答案:

答案 0 :(得分:3)

Per Gunicorn's deploy doc,我的理解是你使用Nginx作为Gunicorn的代理服务器。

当Gunicorn从Ruby's Unicorn移植时,我假设Unicorn的限制和规格也适用于Gunicorn:

  

Unicorn是专为只提供服务而设计的Rack应用程序的HTTP服务器   低延迟,高带宽连接的快速客户端   Unix / Unix类内核中的功能优势。慢客户应该   只能通过放置一个能够完全缓冲的反向代理服务   Unicorn和慢客户端之间的请求和响应。

Gunicorn's deploy doc说了同样的话:

  

虽然有许多HTTP代理可用,但我们强烈建议   你使用Nginx。如果您选择其他代理服务器   当你使用默认的Gunicorn时,确保它缓冲缓慢的客户端   工作人员。没有这种缓冲,Gunicorn很容易受到影响   拒绝服务攻击。

因此,Gunicorn为快速,低延迟的高带宽客户端提供服务,Nginx为其他客户提供服务。

答案 1 :(得分:0)

  

Nginx是Web服务器和反向代理,负责提供静态   内容,gzip压缩,ssl,proxy_buffers和其他HTTP内容   而gunicorn是同时与nginx交互的Python HTTP服务器   以及实际的python网络应用代码来提供动态内容。

     

这是HTTP请求生命周期的高级概述   突出他们的角色。我假设您有一台服务器正在运行   具有三个主要过程的简单应用。

     

Nginx :在端口80上侦听来自   互联网。

     

Gunicorn :在另一个端口(流行的8000端口)上侦听HTTP   来自Nginx的请求。使用您的python网络应用程序配置了Gunicorn。

相关问题