为什么mod_python从每个请求开始就运行整个django堆栈?

为什么mod_python从每个请求开始就运行整个django堆栈?,django,mod-python,Django,Mod Python,我的理解是mod_python将python进程加载到apache中,从而避免了每次调用时的开销。我的期望是,这意味着我的django堆栈也只能加载一次 然而,我观察到的是,每个请求从一开始就运行整个django堆栈,就像它是第一个请求一样。将重新导入设置。中间件\uuuu init\uuuuu应该在django启动时运行一次,每次都运行。等等它看起来本质上就像我期望的CGI一样 这是预期的行为吗?我主要使用mod_wsgi,我相信它不会以这种方式工作,但我必须为我当前的客户机使用mod_pyt

我的理解是mod_python将python进程加载到apache中,从而避免了每次调用时的开销。我的期望是,这意味着我的django堆栈也只能加载一次

然而,我观察到的是,每个请求从一开始就运行整个django堆栈,就像它是第一个请求一样。将重新导入设置。中间件
\uuuu init\uuuuu
应该在django启动时运行一次,每次都运行。等等它看起来本质上就像我期望的CGI一样

这是预期的行为吗?我主要使用mod_wsgi,我相信它不会以这种方式工作,但我必须为我当前的客户机使用mod_python


谢谢

每个httpd进程加载一次Django。由于启动了多个进程(每个子进程都是一个进程),因此会启动多个Django实例。

UNIX系统上的Apache是一个多进程系统,正如其他人所指出的那样。还要确保在Apache配置中,MaxRequestsParchild没有因为某种原因被设置为1。理想情况下,该指令应设置为0,这意味着保留进程,而不是根据请求数量回收它们。

感谢Graham和Ignacio的回答。