什么是NGINX和Gunicorn并行运行的目的是什么?(What is the purpose o

2019-08-02 05:29发布

很多Django应用程序部署超过亚马逊的EC2使用HTTP服务器NGINX和Gunicorn。

我想知道他们实际上做,为什么两个并联使用。 什么是并行运行他们两人的目的是什么?

Answer 1:

他们不是在并行使用。 NGINX是一个反向代理 。 这是排在第一位。 它接受传入连接,并决定他们下一步去。 这也(通常)提供静态媒体,如CSS,JS和图片。 它也可以做其他事情,如通过SSL,缓存等加密

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

Web服务器和Web应用程序或框架之间的简单和通用接口

Gunicorn的工作是管理和运行Django的实例(S)(类似于使用django-admin runserver发展过程中)

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



Answer 2:

Nginx的和Gunicorn在parrallel不使用。

  • Gunicorn,是通常用于运行Python Web应用程序的Web服务器网关接口(WSGI)服务器实现。
  • NGINX是一个自由,开放源码,高性能的HTTP和反向代理服务器,以及一个IMAP / POP3代理服务器。
  • Nginx的负责提供静态内容,gzip压缩,SSL,proxy_buffers和其他HTTP stuff.While gunicorn是既nginx的和实际的Python web应用程序代码来提供动态内容接口Python的HTTP服务器。

下图显示了如何nginx的和Gunicorn互动。



文章来源: What is the purpose of NGINX and Gunicorn running in parallel?