【发布时间】:2010-10-04 18:56:40
【问题描述】:
没有太多关于如何使用 Spawning 部署 Django 项目的文档,但人们推荐它而不是 apache/mod_wsgi。
In another similar question,其他 SO 用户建议我打开一个专门针对 Spawning 的新问题,希望其他人也可以分享他们的经验。
【问题讨论】:
标签: python django deployment spawning
没有太多关于如何使用 Spawning 部署 Django 项目的文档,但人们推荐它而不是 apache/mod_wsgi。
In another similar question,其他 SO 用户建议我打开一个专门针对 Spawning 的新问题,希望其他人也可以分享他们的经验。
【问题讨论】:
标签: python django deployment spawning
是的,我可以推荐你使用 spawning over apache/wsgi setup。
基本上有两个原因: 1) 内存使用(你会在生成时节省一些 MB) 2) 动态代码重新加载(在任何时候,您的用户都会看到 404 或 500 页面)
这来自经验,我在这个设置中在 spawning+nginx 上运行http://tunesdiary.com:
nginx 处理所有传入负载,这些负载进一步代理连接到正在侦听非特权端口的 spawning(意味着 spawning 以不同于 web 服务器的用户身份运行) Spawning 产生 4 个进程,每个进程有 2 个线程。 (适用于当前负载)。
当我将任何代码推送到服务器时,之前的请求都会得到处理,然后新代码开始为新请求提供服务。
到目前为止,这一直运行良好(我从大约 6 个月开始运行它)
我观察到,django 与 mod wsgi + apache(我在几天前使用过)在开始(单个进程)后占用了大约 70MB 的 RAM,而这个设置每个进程使用 45MB 左右。 此外,我还使用 lighttpd + modfcgi 进行了此操作,它消耗的内存量也与 spwaning 几乎相同。
(我可能算错了,因为在 apache 中,webserver 的内存使用量也包括在内)
据我所知,你可以依赖生成,但如果你不经常推动,它就没有多大用处。
【讨论】:
cd 到你的 django 的 settings.py 目录。
这是为您的 django 应用程序提供服务的命令行
spawn --factory=spawning.django_factory.config_factory settings --port 80
【讨论】:
埃里克弗洛伦佐做了一些basic testing of spawning。确保并阅读所有 cmets 以及主要帖子。
就我个人而言,我一直喜欢研究这类解决方案,但在这种情况下,我什至无法进入基准测试阶段。我在 Apache 中需要的重要功能太多了(ssl 客户端证书,在 fastcgi 下运行 mongrel 服务器,在 wsgi 下运行 django,php gasp,直接提供静态文件,每个 ip 地址的 ssl,几十个虚拟主机在多个 IP 地址等上)。
【讨论】:
我很想看看谁认真推荐 Spawning over Apache 和 mod_python 或 mod_wsgi。
从这个问题现在是谷歌“django spawning”的第 4 名结果来看,我想说这还为时过早。 :) 如果您在生产中投入任何严肃的东西,请暂时使用 Apache/mod_wsgi。
【讨论】: