Rom*_*giy 17 python deployment django mod-wsgi fastcgi
有人可以解释守护进程模式下的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很满意:)
Gra*_*ton 10
两者都不必使用线程来处理并发请求.这取决于您如何配置它们.如果需要,您可以使用多个进程,其中每个进程都是单线程的.
有关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托管机制更多的功能和可配置性.
无论如何,问题有点模糊,你能更具体地说明你想知道的是什么,或者两者之间的对比以及为什么?然后可以更好地针对答案.