【问题标题】:How to deploy Django with Spawning如何使用 Spawning 部署 Django
【发布时间】:2010-10-04 18:56:40
【问题描述】:

没有太多关于如何使用 Spawning 部署 Django 项目的文档,但人们推荐它而不是 apache/mod_wsgi。

In another similar question,其他 SO 用户建议我打开一个专门针对 Spawning 的新问题,希望其他人也可以分享他们的经验。

【问题讨论】:

    标签: python django deployment spawning


    【解决方案1】:

    是的,我可以推荐你使用 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 的内存使用量也包括在内)

    据我所知,你可以依赖生成,但如果你不经常推动,它就没有多大用处。

    【讨论】:

      【解决方案2】:

      cd 到你的 django 的 settings.py 目录。

      这是为您的 django 应用程序提供服务的命令行

      spawn --factory=spawning.django_factory.config_factory settings --port 80
      

      【讨论】:

      • 如果服务器重新启动,是否必须再次执行此操作?
      【解决方案3】:

      埃里克弗洛伦佐做了一些basic testing of spawning。确保并阅读所有 cmets 以及主要帖子。

      就我个人而言,我一直喜欢研究这类解决方案,但在这种情况下,我什至无法进入基准测试阶段。我在 Apache 中需要的重要功能太多了(ssl 客户端证书,在 fastcgi 下运行 mongrel 服务器,在 wsgi 下运行 django,php gasp,直接提供静态文件,每个 ip 地址的 ssl,几十个虚拟主机在多个 IP 地址等上)。

      【讨论】:

      • 我读过那篇文章,很好的资源...我打算将它包含在问题中,但我忘记了。感谢您的个人意见!
      • 为什么不用 mod_proxy 运行 spawning/django 呢?
      • mod_proxy 应该可以工作,但我只会在堆栈中有一些 must have apache mods(例如,mod_security)时使用它,否则不妨只使用 nginx 作为你的Spawning 的反向代理。但在这种情况下,gunicorn 可能是更好的选择 :)
      【解决方案4】:

      我很想看看谁认真推荐 Spawning over Apache 和 mod_python 或 mod_wsgi。

      从这个问题现在是谷歌“django spawning”的第 4 名结果来看,我想说这还为时过早。 :) 如果您在生产中投入任何严肃的东西,请暂时使用 Apache/mod_wsgi。

      【讨论】:

      • +1。我见过一些人谈论玩 Spawning,但我还没有听说过一个正在使用它的严肃制作网站(并不是说没有一个)。 AFAICT 的势头仍然是 Apache/mod_wsgi。
      • lighttpd和nginx比较严重
      • 我在使用 mod_wsgi 时问了一个与 Apache 的开销有关的问题,并且我有几个人投票产生了...stackoverflow.com/questions/488864/…
      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 2020-05-05
      • 2021-05-26
      • 2018-01-18
      • 2013-07-16
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多