如何使Python / Nginx / FastCGI在更新/更改时自动重新编译代码?

所以我一直在研究我的第一个Django / Python项目,并且让我的生产服务器正常运行。 我想知道是否有可能使Python / FastCGI(不太确定哪个是负责任务)重新编译我的代码。 截至目前,当我上传更新的代码时,我需要重新启动服务器以进行更改。 我读过你可以添加一些mysite.fcgi文件到lighttpd,这样看来你已经更新了代码,你可以对Nginx / FastCGI执行相同的操作吗?

对于对我的问题感兴趣的任何人..这只是一个部分的解决方案,但我最终在这里找到我的答案: 如何优雅地重新启动运行在nginx后面的fcgi的django?

你可以运行这个脚本(我将稍微修改一下),每次你编辑你的代码时,它都会正常地重启所有的东西而不会丢失连接。

这是mod_wsgi项目的一般指南 ,概述了如何监视app_wsgi.py代码更改,并在任何模块发生更改时重新启动当前进程。 您需要重新启动Python进程,因为线程竞争模块可能意味着新加载的模块已经过时了其他模块的引用,这些模块仍然在等待被发现用于重新加载。

如果你想要一些与nginx,Django和wsgi应用程序完美配合的东西,可以看看Spawning作为你的wsgi服务器。 这是代码重新加载的方法是如此优雅。

它有很好的文档,很好的文档化的请求处理模型,它只是起作用,这使得它是一个很容易配置。 从现在起,只需不到五分钟,Django实例就可以在Spawning上运行。 这是另一个专题博客 ,让你的果汁运行。