当前位置: 首页 > 面试题库 >

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

叶文博
2023-03-14
问题内容

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

更新:

我正在比较在fastemon中内置的django(./manage.py method = threaded maxchildren =
15)和mod_wsgi在“守护程序”模式下(WSGIDaemonProcess示例线程= 15)。他们都使用线程并获得GIL,对吗?

UPDATAE 2:

因此,如果两者相似,apache mod_wsgi对fastcgi有什么好处。我看到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服务器的执行/分支,具体取决于托管机制。在mod_wsgi中,进程仅是Apache父进程的分支。通常,这并不太重要,但是确实有一些含义。

还有其他区别,但它们的区别更多,因为与FASTCGI托管机制相比,mod_wsgi提供了更多的功能和可配置性。

无论如何,这个问题有点含糊,您能否更具体地说明您想了解的内容或两者之间的对比以及为什么?这样也许可以更好地针对答案。



 类似资料:
  • 谢谢你的任何提示或帮助。

  • 本文向大家介绍uwsgi+nginx部署Django项目操作示例,包括了uwsgi+nginx部署Django项目操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了uwsgi+nginx部署Django项目操作。分享给大家供大家参考,具体如下: uWSGI概述 uWSGI 是一个全功能的 HTTP 服务器,可以把 HTTP 协议转化成语言支持的网络协议。 安装uwsgi 使用pip安

  • 本文向大家介绍详解Django+Uwsgi+Nginx的生产环境部署,包括了详解Django+Uwsgi+Nginx的生产环境部署的使用技巧和注意事项,需要的朋友参考一下 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Ng

  • 本文向大家介绍Django uwsgi Nginx 的生产环境部署详解,包括了Django uwsgi Nginx 的生产环境部署详解的使用技巧和注意事项,需要的朋友参考一下 配置生产环境 创建Python虚拟环境 安装 virtualenv 克隆Python的环境 收集静态文件 先在settings中配置 STATIC_ROOT = os.path.join(BASE_DIR, 'static'

  • 虽然 uWSGI 最常见的使用场景是当作 WSGI 服务器,但它其实还提供了更多的其它功能,这篇博客 中介绍了 uWSGI 如同瑞士军刀般强大的各项功能。 安装指南 官方提供了多种安装方式,比如使用 pip 安装 uWSGI 安装包: pip install uwsgi。 或者使用安装脚本: curl http://uwsgi.it/install | bash -s default /tmp/u

  • 如果你对这个主题有任何问题,可以点击下面的链接访问相应的话题: http://www.mail-archive.com/webpy@googlegroups.com/msg02800.html 下面的代码基于lighttpd 1.4.18,更高版本也可以工作 注意事项 你可以重命名 code.py为任何你自己愿意的名字,该例子还是以code.py为例。 /path-to/webpy-app 为包含