django - 为什么我们需要 uwsgi 来在 nGINX 上托管 Django

标签 django nginx wsgi uwsgi

让我们来看看:

Django 与 WSGI 兼容。
WSGI 是 Web 服务器网关接口(interface)

现在,Nginx 是一个服务器。所以我们应该能够与 Django 进行通信。那么为什么我们需要 uWSGI 呢?

都说uWSGI是说wsgi协议(protocol)的服务器。

那么什么是uwsgi协议(protocol)。它与 WSGI(协议(protocol)/规范)有何不同

再说一遍,为什么我们会找到 Django + uWSGI + Nginx 的组合?

我不能在 nginx 和 django 之间说 WSGI 吗? Coz WSGI 本身意味着成为 WebServer (nginx) 和 Web Applications (django) 之间的规范

最佳答案

WSGI 专门是一个 Python 接口(interface),而 Nginx 是一个通用的网络服务器。因此,您至少需要在 Nginx 和 Django 之间进行一些东西,将标准的 http 请求转换为 WSGI 请求。

uWSGI 只是几个流行的 WSGI 服务器之一。其他包括 gunicorn 和 mod_wsgi(一个 Apache 模块,它也需要安装 Apache)。 uWSGI 恰好是我的首选,而 nginx 现在对其协议(protocol)具有原生支持,因此使用它不会出错。

关于django - 为什么我们需要 uwsgi 来在 nGINX 上托管 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675040/

相关文章:

python - 找不到带有 nginx + mod_wsgi 模板文件的 webpy

linux - 从 nginx 日志文件的 IP 地址获取热门网址

python - Bottle-friendly WSGI 认证库/中间件

django - Django 中的自动完成字段

python - 在单个模型的多个模型中使用外键时出现 django 错误

nginx - gstreamer 流式传输到 nginx rtmp 服务器

python - 将文件返回给 WSGI GET 请求

使用 WSGI 在 Apache 上运行的 Django 缓存所有内容

django - 无法启动Django项目: No Module Named django.核心

mysql - Django ORM 左连接与嵌套条件?