重新启动在Apache + mod_python的运行Django应用程序(Restarting a

2019-07-29 14:29发布

我运行在Apache + mod_python的Django的应用程序。 当我做一些改变的代码,有时他们立即生效,他们没有其他时间,直到我重新启动Apache。 但是我真的不希望这样做,因为它运行的其他东西太多生产服务器。 有一些其他方法来强制呢?

只是要清楚,因为我看到一些人弄错了,我说的是生产环境。 对于开发我使用过程中的Django的开发服务器。

Answer 1:

如果可能的话,你应该切换到mod_wsgi的。 这是现在推荐的方式来服务Django的,无论如何,并且在内存和服务器资源方面更加高效。

在mod_wsgi的,每个站点都有一个.wsgi与之相关的文件。 要重新启动一个网站,只需touch相关的文件,只有该代码将重新加载。



Answer 2:

正如其他人所建议的,使用mod_wsgi的来代替。 要获取自动重新加载能力,通过触摸WSGI脚本文件,或通过监视器,以查找代码更改,您必须在UNIX上使用daemon模式。 甲戏法可以用于使用嵌入模式时实现在Windows相同。 所有的细节可以发现:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode



Answer 3:

你可以在你的httpd.conf文件中设置“MaxRequestsPerChild 1”减少连接的数量为1。 但这样做只是测试服务器,而不是生产上。

要么

如果你不想杀死现有的连接仍然重新启动Apache你可以重新启动“正常”的“优雅apache2ctl”执行 - 所有现有的连接将被允许完成。



Answer 4:

使用包含在Django的测试服务器。 (如./manage.py runserver 0.0.0.0:8080 )这对你在开发过程中需要最多的事。 唯一的缺点是,它不能处理多线程同时请求。

我听说有,设置Apache的最大实例为1,即每个代码变化立即反映一招 - 而是因为你说你正在运行的其他服务,所以这可能不是你的情况。



文章来源: Restarting a Django application running on Apache + mod_python