0

给定如下简单的 apache2 conf,django.wsgi 什么时候执行?似乎它仅查询第一次到达时执行,并且再也不会执行。我期待它在 apache 启动时执行,然后再也不执行了。任何人都可以阐明这是如何工作的吗?

WSGIDaemonProcess site-1 user=user-1 group=user-1 threads=25
WSGIProcessGroup site-1

WSGIScriptAlias / /usr/local/django/mysite/apache/django.wsgi

<Directory /usr/local/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
4

1 回答 1

2

WSGI 脚本文件在技术上不被执行,而是被导入。因此,它们就像 Python 中的任何其他模块一样,只加载一次。在这种情况下,它发生在请求第一次到达并且需要由该 WSGI 脚本文件映射的应用程序时。

加载后,WSGI 应用程序对象在每个请求中执行一次。

就在某些情况下重新加载 WSGI 脚本文件而言,有一些例外情况。对此的解释如下:

现在,虽然它是第一次加载请求需要它,但您可以使用 WSGIImportScript 指令强制在进程启动时加载它:

或者将 process-group 和 application-group 选项与 WSGIScriptAlias 指令一起使用。后者是在 mod_wsgi 3.o 中引入的。

于 2013-05-25T06:30:53.357 回答