小编典典

部署Django(fastcgi,apache mod_wsgi,uwsgi,gunicorn)

python

有人可以解释守护程序模式下的apache mod_wsgi和线程模式下的django fastcgi之间的区别。我认为它们都使用线程进行并发。
假设我将nginx用作Apache mod_wsgi的前端。

更新:

我正在比较在fastemon中内置的django(./manage.py method = threaded maxchildren =
15)和mod_wsgi在“守护程序”模式下(WSGIDaemonProcess示例线程= 15)。他们都使用线程并获得GIL,对吗?

UPDATAE 2:

因此,如果两者相似,apache mod_wsgi对fastcgi有什么好处。我看到fastcgi的优点:

  • 我们不需要阿帕奇
  • 我们消耗更少的内存
  • 我注意到fastcgi的开销较小

UPDATAE 3:

我现在对nginx + uwsgi感到满意。

UPDATAE 4:

我现在对Nginx + Gunicorn很满意:)


阅读 322

收藏
2021-01-20

共1个答案

小编典典

两者都不必使用线程来处理并发请求。这取决于您如何配置它们。如果需要,可以使用多个进程,其中每个进程都是单线程的。

有关mod_wsgi进程/线程模型的更多背景,请参见:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

尽管mod_wsgi自己处理过程管理,但是这些模型是相似的。就过程管理而言,FASTCGI中会发生什么取决于您使用的是哪种FASTCGI托管机制,而您没有说明是什么。

另一个区别是FASTCGI仍然需要单独的FASTCGI到WSGI桥(例如flup),因为mod_wsgi不需要任何形式的桥,因为本地实现了WSGI接口。

最后,FASTCGI进程是某些主管进程或Web服务器的执行/分支,具体取决于托管机制。在mod_wsgi中,进程仅是Apache父进程的分支。通常,这并不太重要,但是确实有一些含义。

还有其他区别,但它们的区别更多,因为与FASTCGI托管机制相比,mod_wsgi提供了更多的功能和可配置性。

无论如何,这个问题有点含糊,您能否更具体地说明您想了解的内容或两者之间的对比以及为什么?这样也许可以更好地针对答案。

2021-01-20