gpt4 book ai didi

python - 部署 Django(fastcgi、apache mod_wsgi、uwsgi、gunicorn)

转载 作者:IT老高 更新时间:2023-10-28 21:13:58 24 4
gpt4 key购买 nike

谁能解释守护进程模式下的 apache mod_wsgi 和线程模式下的 django fastcgi 之间的区别。我认为他们都使用线程进行并发。假设我使用 nginx 作为 apache mod_wsgi 的前端。

更新:

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

UPDATAE 2:

如果它们都相似,apache mod_wsgi 对 fastcgi 有什么好处。我看到了 fastcgi 的这些优点:

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

UPDATAE 3:

我现在对 nginx + uwsgi 很满意。

UPDATAE 4:

我现在对 nginx + gunicorn 很满意 :)

最佳答案

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

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

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

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

另一个区别是,FASTCGI 仍然需要一个单独的 FASTCGI 到 WSGI 的桥接器,例如 Flup,而 mod_wsgi 不需要任何类型的桥接器,因为它本身就实现了 WSGI 接口(interface)。

最后,FASTCGI 进程是某个主管进程或 Web 服务器的 exec/fork,取决于托管机制。在 mod_wsgi 中,进程只是 Apache 父进程的一个分支。一般来说,这并不重要,但确实有一些影响。

还有其他差异,但它们的出现更多是因为 mod_wsgi 提供了比 FASTCGI 托管机制更多的功能和可配置性。

无论如何,这个问题有点模糊,您能否更具体地说明您想知道什么或两者之间的对比以及为什么?那么答案可能会更有针对性。

关于python - 部署 Django(fastcgi、apache mod_wsgi、uwsgi、gunicorn),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com