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

2024-06-02 11:36:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Apache+mod_python上运行一个Django应用程序。当我对代码进行一些更改时,有时它们会立即生效,有时则不会,直到我重新启动Apache。不过,我真的不想这么做,因为它是一个生产服务器运行其他东西。有别的办法来强迫吗?

为了说明这一点,因为我看到有些人弄错了,所以我说的是一个生产环境。当然,对于开发,我使用的是Django的开发服务器。


Tags: django代码服务器mod应用程序环境apache办法
3条回答

正如其他人所建议的,改用mod_wsgi。要通过触摸WSGI脚本文件或通过查找代码更改的监视器获得自动重新加载的能力,必须在UNIX上使用守护进程模式。在使用嵌入式模式时,可以在Windows上使用少量的hand来实现相同的功能。所有详情见:

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

通过在httpd.conf文件中设置“MaxRequestsPerChild 1”,可以将连接数减少到1。但只能在测试服务器上执行,而不是在生产环境中。

或者

如果您不想终止现有连接并仍然重新启动apache,您可以通过“优雅地”执行“apache2ctl”来“优雅地”重新启动它-将允许所有现有连接完成。

如果可能,您应该切换到mod_wsgi。无论如何,这现在是为Django服务的recommended way,在内存和服务器资源方面效率更高。

在mod wsgi中,每个站点都有一个与其关联的.wsgi文件。要重新启动站点,只需touch相关文件,并且只会重新加载该代码。

相关问题 更多 >