据说部署Django最好的方式是使用WSGI,我想知道为什么?

7
我们正在部署Django应用程序,我在文档中发现推荐使用WSGI方法来完成这项工作。
在部署之前,我想知道为什么推荐使用WSGI而不是其他两种方法,即使用mod_python和fastcgi...
非常感谢。

请查看绿色独角兽 - salmatron
3个回答

15

WSGI通常被优先选择,因为它将框架的选择与Web服务器的选择分离开来:如果您明天想从Apache转到nginx或其他Web服务器,使用WSGI进行迁移将非常容易,而不是其他方式那么容易。

此外,使用WSGI还可以为您提供添加一些与框架无关的中间件的选项,而不必依赖于已经实现并为您选择的框架提供的每种可能的功能。


1
尽管您的评论在一般意义上是有效的,但Django文档实际上推荐mod_wsgi作为部署方法,当OP说“WSGI”时,他可能指的是那个。换句话说,您不能忘记WSGI是一个接口规范,而不是部署机制的实际实现。mod_wsgi包只是WSGI部署方法的一个示例。从技术上讲,FASTCGI部署也是通过WSGI完成的(通过flup),尽管Django直接支持mod_python,但您也可以在其上放置WSGI适配器。因此,OP可能想知道mod_wsgi是否可以。 - Graham Dumpleton

5
我们尝试了 mod_python。它速度较慢,且配置困难。它也没有提供守护程序功能。
我们无法在 Apache、Red Hat和Python的组合中构建 fast_cgi。我不确定具体是什么问题,但我们无法正确构建它。它不能正确地将请求分配给Django,并且我们无法诊断问题。
第三种尝试我们选择了 mod_wsgi。它构建得很好,有守护程序选项。它非常容易配置,允许轻松重启Django应用程序而无需重新启动整个Apache。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接