Python 如何使用产卵部署Django

Python 如何使用产卵部署Django,python,django,deployment,spawning,Python,Django,Deployment,Spawning,关于如何使用部署Django项目,没有太多文档,但是人们推荐使用apache/mod_wsgi ,另一位用户建议我提出一个关于繁殖的新问题,希望其他人也能分享他们的经验。我想看看是谁认真推荐使用Apache和mod_python或mod_wsgi进行繁殖 从这个问题现在是谷歌“django Spanking”的第四个结果这一事实来看,我认为这还为时过早如果您要在生产中投入任何精力,请暂时使用Apache/mod_wsgi。Eric Florenzo做了一些工作。确保阅读所有评论以及主要帖子 就我

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


,另一位用户建议我提出一个关于繁殖的新问题,希望其他人也能分享他们的经验。

我想看看是谁认真推荐使用Apache和mod_python或mod_wsgi进行繁殖

从这个问题现在是谷歌“django Spanking”的第四个结果这一事实来看,我认为这还为时过早如果您要在生产中投入任何精力,请暂时使用Apache/mod_wsgi。

Eric Florenzo做了一些工作。确保阅读所有评论以及主要帖子


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

cd到django的settings.py目录

下面是为django应用程序提供服务的命令行

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

是的,我可以建议您使用apache/wsgi上的生成设置

基本上有两个原因: 1) 内存使用率(繁殖时会节省一些MB) 2) 动态代码重新加载(在任何时候,您的用户都会看到404或500页)

这来自经验,我在这个设置中运行的是Spanking+nginx:

nginx处理所有传入的负载,这些负载将进一步代理连接到正在非特权端口上侦听的繁殖(意味着繁殖以不同于web服务器的用户身份运行) 繁殖产生4个进程,每个进程有2个线程。(适用于当前负载)

当我将任何代码推送到服务器时,会处理以前的请求,然后新代码开始为新请求提供服务

到目前为止,它一直运行得非常好(我从大约6个月开始运行)

据我观察,django和mod wsgi+apache(我在几天前使用过)在启动(单进程)后占用了大约70MB的RAM,而这个设置每个进程大约使用45MB。 此外,我还使用了lighttpd+modfcgi,它消耗的内存量几乎与spwaning相同

(我可能计算错了,因为在apache中,Web服务器的内存使用也包括在内)


据我所说,你可以依靠产卵,但如果你不经常推,它就没有多大用处。

+1。我见过一些人谈论过如何玩“产卵”,但我还没有听说有一个严肃的制作网站在使用它(更不用说没有)。目前,Apache/mod_wsgi的势头依然强劲。lighttpd和nginx更为严重。我问了一个有关Apache在使用mod_wsgi时的开销的问题,我已经有一些人投票支持生成。。。我读过那篇文章,很好的资源。。。我本打算把它包括在问题里,但我忘了。谢谢你的个人意见!为什么不使用mod_代理运行sprowing/django呢?mod_代理应该可以工作,但我只会在堆栈中有一些必须使用的apache mod时使用它(例如,mod_安全性),否则也可以使用nginx作为反向代理来生成。但在这种情况下,gunicorn可能是一个更好的选择:)如果服务器重新启动,是否必须再次执行此操作?