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 を再起動しましたが、WSGI を完全に変更して別のものを出力しましたが、「Hello World」出力があります。

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 に答える