Gunicorn和Nginx之间的区别

Gunicorn和Nginx之间的区别,nginx,gunicorn,Nginx,Gunicorn,这是一个开始的问题,但我很难理解Gunicorn和Nginx之间的抽象。我不是在寻找一个详细的答案,只是在一个较高的层次上,每个人所扮演的角色是什么?它们是如何交互的?根据我的理解,您使用Nginx作为Gunicorn的代理服务器 由于Gunicorn的移植来自,我假设Unicorn的限制和规范也适用于Gunicorn: Unicorn是一个HTTP服务器,用于机架式应用程序,仅用于 低延迟、高带宽连接上的快速客户端和 Unix/Unix类内核中功能的优势。慢客户应该 只能通过放置能够完全缓冲的

这是一个开始的问题,但我很难理解Gunicorn和Nginx之间的抽象。我不是在寻找一个详细的答案,只是在一个较高的层次上,每个人所扮演的角色是什么?它们是如何交互的?

根据我的理解,您使用Nginx作为Gunicorn的代理服务器

由于Gunicorn的移植来自,我假设Unicorn的限制和规范也适用于Gunicorn:

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

同样的道理:

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

因此,Gunicorn提供快速、低延迟、高带宽的客户端,而Nginx则提供其余的服务

Nginx是一个web服务器和反向代理,负责提供静态服务 内容、gzip压缩、ssl、代理缓冲区和其他HTTP内容 而gunicorn是一个Python HTTP服务器,它与nginx和 和实际的python web应用程序代码来提供动态内容

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

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

Gunicorn:侦听HTTP的另一个端口(8000是最流行的端口) 来自Nginx的请求。Gunicorn已配置了python web应用程序