首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >部署Django (fastcgi,apache mod_wsgi,uwsgi,gunicorn)

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

Stack Overflow用户
提问于 2010-04-07 18:46:42
回答 1查看 8.9K关注 0票数 17

有人能解释一下守护程序模式下的apache mod_wsgi和线程模式下的django fastcgi的区别吗?我认为它们都使用线程来实现并发。假设我使用nginx作为mod_wsgi的前端。

更新:

我正在比较快速and (./manage.py method=threaded maxchildren=15)中内置的django和'daemon‘模式下的mod_wsgi (WSGIDaemonProcess示例threads=15)。它们都使用线程并获取GIL,我说的对吗?

更新2:

那么,如果它们都是相似的,apache mod_wsgi与fastcgi相比有什么好处吗?我看到了fastcgi的以下优点:

  • 我们不需要apache
  • 我们消耗更少的内存
  • 我注意到don有更少的开销

更新3:

我现在对nginx + uwsgi很满意。

更新4:

我现在很高兴使用nginx + gunicorn :)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-07 19:22:11

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

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

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

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

另一个不同之处是,FASTCGI仍然需要一个单独的FASTCGI到WSGI的桥,比如flup,因为mod_wsgi不需要任何类型的桥,因为它在本地实现了WSGI接口。

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

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

无论如何,这个问题有点模糊,你能更具体地说明你想知道的是什么,或者两者之间的对比及其原因吗?答案可能会更有针对性。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2591715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档