【问题标题】:It is said best way to deploy django is using wsgi, I am wondering why?据说部署 django 的最佳方式是使用 wsgi,我想知道为什么?
【发布时间】:2023-03-10 15:53:02
【问题描述】:

我们正在部署 django 应用程序,我在文档中发现建议使用 WSGI appoach 来执行此操作。

在部署之前我想知道,为什么推荐它而不是其他两种方法,即使用 mod_python 和 fastcgi...

非常感谢。

【问题讨论】:

标签: python django mod-wsgi wsgi django-wsgi


【解决方案1】:

wsgi 通常是首选,因为它将您选择的框架与您选择的 Web 服务器分离:如果明天您想从 Apache 迁移到 nginx,或者其他什么,使用 wsgi 迁移很容易,但并非如此否则很容易。

此外,使用 wsgi 可以让您选择添加一些独立于框架的中间件,而不必依赖于您希望已经实现并可供您选择的框架使用的所有可能的功能。

【讨论】:

  • 虽然您的 cmets 在一般意义上是有效的,但 Django 文档实际上推荐 mod_wsgi 作为部署方法,当 OP 说“WSGI”时,他可能是这个意思。换句话说,你不能忘记 WSGI 是一个接口规范,而不是一个部署机制的实际实现。 mod_wsgi 包只是 WSGI 部署方法的一个示例。从技术上讲,FASTCGI 部署也是由 WSGI(通过 Flup)完成的,虽然 Django 直接支持 mod_python,但您也可以在其上放置 WSGI 适配器。因此,OP 可能想更多地了解 mod_wsgi 是否可以。
【解决方案2】:

我们尝试了mod_python。它更慢更难配置。它不提供守护程序功能。

我们无法为我们的 Apache、Red Hat 和 Python 组合构建 fast_cgi。我不确定具体出了什么问题,但我们无法正确构建它。它不会正确地向 Django 发送请求,我们无法诊断问题。

我们第三次尝试mod_wsgi。它建造得很好。它有守护进程选项。它很容易配置。它允许在不重新启动所有 Apache 的情况下简单地重新启动 Django 应用程序。

【讨论】:

    【解决方案3】:

    我将 mod_wsgi 用于任何生产 Django 应用程序。它快速、稳定且非常可配置。

    您可能还想进一步研究一下 FastCGI 方法。 Eric Florenzano 刚刚为 Django Advent 用 FastCGI 写了一篇关于 Django 的精彩文章:http://djangoadvent.com/1.2/deploying-django-site-using-fastcgi/

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 2022-07-22
      • 2010-09-06
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 2010-09-05
      • 2023-03-29
      • 2018-09-01
      相关资源
      最近更新 更多