Django + apache & mod wsgi: перезапуск apache после изменений

Я настроил свой сервер разработки таким образом:

Ubuntu, Apache, mod_wsgi, Python 2.6

Я работаю на сервере с другого подключенного к нему компьютера.

в большинстве случаев изменения не влияют на приложение, если я не перезапущу Apache. В некоторых случаях изменения вступают в силу без перезапуска веб-сервера, но после загрузки, скажем, 3 или 4 страниц приложение может вести себя так, как оно вело себя до изменений.

пока теперь я просто перезагружал каждый раз apache, поскольку у меня есть сервер разработки здесь со мной, но ад через некоторое время стал таким раздражающим. Как мне этого избежать?

Я не могу работать с сервером разработки, поскольку мне нужна среда, максимально приближенная к производственной.

спасибо

3 ответов


мое предложение заключается в том, что вы запустите приложение в режиме демона. Таким образом, вам не потребуется перезапускать apache, просто touch my_handler.wsgi и демон будет знать, чтобы перезапустить приложение. Apache httpd не будет только вашим (в производстве), поэтому справедливо не перезапускать его при каждом обновлении.


никакие изменения не требуют перезагрузки. вам просто нужно перезагрузить с помощью " sudo / etc / init.д/apache2 не перезагрузить". Который я использовал в своем bashrc для "a2reload".

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

Apache загружает среду Django при запуске и продолжает работать даже при изменении источника.

Я предлагаю вам использовать Django 'runserver' (который автоматически перезапускается при изменениях) в тяжелых сеансах разработки, если вам не нужны некоторые особенности Apache (например, многопоточность).

обратите внимание также, что изменения в шаблонах не требуют перезапуска веб-сервера.