Django + apache& mod_wsgi:更改后必须重启apache

时间:2010-11-17 15:30:08

标签: python django apache mod-wsgi django-wsgi

我以这种方式配置了我的开发服务器:

Ubuntu,Apache,mod_wsgi,Python 2.6

我从连接到它的另一台计算机上处​​理服务器。

除非我重新启动Apache,否则大多数情况下更改不会影响应用程序。 在某些情况下,更改会在不重新启动Web服务器的情况下生效,但在让我们说3或4页加载后,应用程序可能会像以前在更改之前的行为一样。

到现在为止,我只是在每次apache重新加载,因为我在这里有开发服务器,但是HELL过了一段时间后非常讨厌。我怎么能避免这个?

我无法使用开发服务器,因为我需要一个尽可能接近生产环境的环境。

由于

3 个答案:

答案 0 :(得分:14)

我的建议是你以守护进程模式运行应用程序。 这样您就不需要重启apache了, 只需touch my_handler.wsgi并且守护程序将知道重新启动应用程序。 apache httpd不仅仅是你的(在生产中)所以不公平,不要在每次更新时重启它。

答案 1 :(得分:7)

没有任何更改需要您重新启动。您只需使用“sudo /etc/init.d/apache2 reload”重新加载。我把bashrc中的别名变为'a2reload'。

function a2reload (){
sudo /etc/init.d/apache2 reload
}

答案 2 :(得分:-1)

Apache在启动时加载Django环境,即使源更改也会继续运行它。

我建议您在繁重的开发会话中使用Django'rowserver'(它会在更改时自动重启),除非您需要一些特定于Apache的功能(例如多线程)。

另请注意,模板中的更改不需要重新启动Web服务器。