繁体   English   中英

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

[英]Deploying Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)

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

更新:

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

UPDATAE 2:

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

  • 我们不需要apache
  • 我们消耗更少的RAM
  • 我注意到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接口。

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

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

无论如何,问题有点模糊,你能更具体地说明你想知道的是什么,或者两者之间的对比以及为什么? 然后可以更好地针对答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM