[英]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的这些优点:
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.