亚马逊EC2上的许多Django应用部署都使用HTTP服务器NGINX和Gunicorn.

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

推荐答案

它们不是并行使用的.NGINX是100.排在第一位.它接受传入的连接并决定它们下一步应该go 哪里.它还(通常)服务于静态媒体,如CSS、JS和图像.它还可以做其他事情,比如通过SSL加密、缓存等.

Gunicorn是下一层,是100.Nginx看到传入的连接是针对www.domain.com的,并且知道(通过配置文件)它应该将该连接传递到Gunicorn.Gunicorn是一台WSGI服务器,基本上是:

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

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

与此设置不同的是,将Apache与mod_wsgi模块一起使用.在这种情况下,应用服务器实际上是Apache的一部分,作为模块运行.

Django相关问答推荐

其中实际的数据库提取在DRF list()中完成

Django 根据子级过滤父级

Django通用列表视图与多查询搜索

为什么 timezone.now 在作为默认值应用于 Django 中的 DateField 时显示future 日期

int_list_validator在 Django 表单中不起作用

Django模型中的密码字段

如何将表单中的用户字段设置为当前登录的用户?

当我告诉它时,如何使用 Django 的记录器来记录回溯?

Django 模板文件夹

变量为无时默认模板标签输出的Django设置?

在 django/python 上访问请求标头

Django 自定义管理器 - 如何仅返回登录用户创建的对象?

Apache + mod_wsgi 与 nginx + gunicorn

在 Django REST Framework 中找不到资源时如何返回 404

Django -- User.DoesNotExist 不存在?

在 django 中的查询集上运行 explain的简单方法

如何覆盖 django 管理员翻译?

ModelForm 上的 Django 和字段集

Numpy 数组到 base64 并返回到 Numpy 数组 - Python

何时使用 Django get_absolute_url() 方法?