我今晚开始发现 WSGI 并遇到了我无法完全理解的问题。我所做的是从 Apache + mod_wsgi 开始,并以嵌入式模式运行我的 WSGI“Hello World”应用程序。我刚刚将 WSGIScriptAlias 指向它,重新启动 Apache 并且“Hello World”就在那里。
然后我继续进行研究,发现如果我在嵌入模式下使用 WSGI 应用程序,我每次进行一些更改时都需要重新启动 Apache,所以我更改了 VirtualHost 配置,使其现在以守护模式运行:
WSGIDaemonProcess wsgi-app processes=2 threads=15
WSGIProcessGroup wsgi-app
我已经重新启动了 Apache,但仍然有我的“Hello World”输出,尽管我完全改变了我的 WSGI 以输出不同的东西
def application(environ, start_response):
status = '200 OK'
if not environ['mod_wsgi.process_group']:
output = 'EMBEDDED MODE'
else:
output = 'DAEMON MODE'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
任何人都有任何解释或链接来帮助我找出问题所在?Apache 是否甚至在单独的进程下启动了 WSGI,或者重启后它仍然锁定在嵌入模式?我在将其更改为守护程序模式之前进行了此更改,所以这不应该是真的吗?如果是这样 - 即使 WSGI 触发了它自己的进程,它也必须将输出从“HelloWorld”更改为这个新的?
抱歉,如果这个问题是初学者的错误 - 我只是在阅读http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode后无法理解它
再次感谢您的帮助:)