mod_wsgiの動作モードについて

apache の mod_wsgi には2つの動作モードがある。 組み込みモード(embedded mode) と デーモンモード(daemon mode) である。

embedded mode

embedded mode では、WSGIアプリケーションのpythonは、apache が静的ファイルを処理するのに使用しているプロセス上で実行される。 そのため、WSGIアプリケーションのファイルを更新した際に、apache自体のリスタートが必要になる。

daemon mode

daemon mode では、WSGIアプリケーションのpythonは、専用のプロセスが用意され、その上で実行される。 このモードでは、WSGIアプリケーションのファイルを更新した際に、デーモンプロセスをリスタートするだけでよく、apache自体はそのままでよい。 デーモンプロセスのリスタートは、WSGIアプリケーションのパスにアクセスした際に、ファイルが更新されていれば自動的に行われる為、 こちらの方がファイルの修正に対して、手間が少ない。

設定方法

apache の http.conf での設定方法は次のとおりである。

  • embedded mode

    
    WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
    WSGIPythonHome /path/to/venv
    WSGIPythonPath /path/to/mysite.com
    
    <Directory /path/to/mysite.com/mysite>
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>
    
    
  • daemon mode

    
    WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/mysite.com
    WSGIProcessGroup example.com
    
    WSGIScriptAlias /mysite /path/to/mysite.com/mysite/wsgi.py process-group=example.com
    
    <Directory /path/to/mysite.com/mysite>
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>