2017-01-04 16 views
0

私たちはdjango、python、PostgreSQLで動作するWebアプリケーションを持っています。また、virtualenvも使用しています。デーモンとしてPythonでDjangoを実行

Webサービスを開始するには、最初にvirtualenvを有効にしてから、nohupを使用して8080上のサービスとしてpythonを起動します。

しかし、しばらくしてから、nohupプロセスが終了します。 apacheのようなデーモンとしてサービスを起動する方法はありますか、またはmonitのようなものを使用しますか?

が、私はこれに新しいです、Apacheまたはngnixを使用してアプリケーションを配備するのは良い考えかもしれ私の過ち

+4

Djangoのドキュメントには、[deployment](https://docs.djangoproject.com/en/1.10/howto/deployment/)のセクションがあります。 – Alasdair

+0

http://gunicorn.org/を参照してください。 – intelis

答えて

1

を言い訳してください。 Apacheでそれを行う方法についての公式のDjangoのドキュメントがあります - https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/ Apacheは、仮想環境をサポートしてい

- のmod_wsgiのデーモンモードを使用しているときだけWSGIDaemonProcessディレクティブにpython-home=<path_to_your_virtual_env>を追加します。

WSGIDaemonProcess django python-path=/opt/portal/src/ python-home=/opt/venv/django home=/opt/portal/ 

どのようにするためのベストプラクティス

:使用のmod_wsgi環境と仮想環境の中で説明されています
1

したがって、runserverコマンドはテスト環境でのみ使用する必要があります。 @Alasdairのように、Djangoのドキュメントにはすでにそのトピックに関する興味深い情報があります。

gunicornをwsgiとして使用し、nginxをリバースプロキシとして使用することをお勧めします。あなたは詳細を見つけることができますhere

私はsupervisorを使用して、あなたのガンコルン作業者を監視し、制御することをお勧めします。詳細はこちらhere

関連する問題