python - python 部署 Django ( fastcgi,apache mod_wsgi,gunicorn )

  显示原文与译文双语对照的内容

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

更新:

我正在比较 Django 中内置的( 。/管理。py method=threaded maxchildren=15 ) 和'守护进程'模式( WSGIDaemonProcess示例 threads=15 ) 中的mod_wsgi 。 他们都用线程来获取GIL我是对的?

UPDATAE 2:

因此,如果两者都相似,那么 apache mod_wsgi对fastcgi有什么好处。 我看到了这样的fastcgi优点:

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

UPDATAE 3:

我现在很高兴 Nginx + 。

UPDATAE 4:

我现在很高兴 Nginx + gunicorn: )

时间: 原作者:

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

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

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

尽管mod_wsgi处理流程管理本身,但这些模型是相似的。 至于过程管理中发生了什么,这取决于你使用的datacontext机制,并且不说明它是什么。

另一个区别是,FASTCGI仍然需要一个单独的FASTCGI到WSGI桥,如,因为不需要任何类型的桥作为实现WSGI接口的接口。

最后,FASTCGI进程是一些主管进程或者web服务器的执行/fork,依赖于主机机制。 在mod_wsgi中,进程只是Apache父进程的fork 。 一般来说,这并不太重要,但确实有一些影响。

但是它们出现了更多的差别,因为mod_wsgi提供了更多的功能和可以配置性,而不是。

无论如何,这个问题有点模糊,你能更详细地知道你想知道或者对比这两个问题? 然后答案可能会更好。

原作者:
...