0

我今晚开始发现 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后无法理解它

再次感谢您的帮助:)

4

1 回答 1

0

看起来这不是与 WSGI 相关的问题,而是我的 VM - 主机配置中的一些问题。更改后更改不会保存在 WSGI 文件中(为什么 - 我还不确定可能与运行此文件的进程有关)。无论如何 - 很抱歉浪费时间。

于 2013-01-20T22:53:15.717 回答