mod_wsgiをdaemon modeで動かす
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>