django – NGINX和Gunicorn并行运行的目的是什么?

在Amazon的EC2上部署的许多Django应用程序使用HTTP服务器NGINX和Gunicorn。

我想知道他们实际做什么,为什么两者并行使用。同时运行它们的目的是什么?

最佳答案
它们不是并行使用。 NGINX是一个reverse proxy.它的第一行。它接受传入连接并决定下一步应该去哪里。它还(通常)提供静态媒体,如CSS,JS和图像。它也可以做其他事情,如通过SSL加密,缓存等。

Gunicorn是下一层,是一个application server.NGINX看到传入的连接是为www.domain.com,并知道(通过配置文件),它应该通过该连接到Gunicorn。 Gunicorn是一个WSGI服务器,基本上是:

simple and universal interface between web servers and web applications or frameworks

Gunicorn的工作是管理和运行Django实例(类似于在开发期间使用django-admin runserver)

与此设置的对比是使用Apache与mod_wsgi模块。在这种情况下,应用程序服务器实际上是Apache的一部分,作为模块运行。

转载注明原文:django – NGINX和Gunicorn并行运行的目的是什么? - 代码日志