|
|
1
32
Apache/mod_wsgi的默认设置是,只在向需要应用程序的进程发出第一个请求时加载应用程序代码。因此,第一步是配置mod_wsgi,以便在进程启动时预加载代码,而不仅仅是第一个请求。这可以在mod_wsgi 2.X中使用WSGIImportScript指令完成。
当您进行了代码更改时,不要触摸WSGI脚本文件(仅在下一个请求时检查),而是向守护进程组中的进程发送SIGINT信号。 通过WSGIDaemonProcess的“显示名称”选项,您可以使用BSD风格的“ps”程序识别哪些进程。将“display name”设置为“%{GROUP}”时,“ps”输出应显示“(wsgi:django)”作为进程名称。识别流程ID并执行以下操作:
不确定“killall”是否可以一步完成此操作。我在MacOSX上做这件事有问题。 在mod_wsgi 3.X中,配置可以更简单,可以使用:
也就是说,不需要像特定的进程组和应用程序组那样使用单独的WSGIImportScript指令作为WSGIScriptAlias的参数,而是具有预加载应用程序的副作用。 |
|
|
2
3
你是如何运行Django的(mod_python vs mod_wsgi)?
如果您正在运行mod_wsgi(在守护进程模式下),则无需重新启动Apache即可重新加载应用程序。您需要做的就是更新wsgi脚本的mtime(这很容易用
mod_wsgi的文档对这个过程有一个非常全面的解释: |