Web HerokuのProcfileとgunicorn

gunicornとProcfileのコマンドの記述が不明瞭だったのでまとめておく

  • gunicornは、PythonでWebサーバとWebアプリをつなぐ橋渡し的なもの
  • Profileは、<process type>: <command>の形で定義する。
    Process Types and the Procfile | Heroku Dev Center
    タイプwebだけは特別であり、herokuからのHTTPトラフィックがルーティングされる模様。 他は任意。
  • gunicornのコマンドについて
    Gunicorn で Django を使う方法 — Django 1.4 documentation
    gunicorn [OPTIONS] APP_MODULEで起動。APP_MODULEは、モジュール名:変数名の形で指定。 モジュール名はappでいい。変数名はWSGIに対応したオブジェクトの名前だ。
    後者は.pyファイルの中で、appとして使っているのでそれのこと。つまり、app:app
  • nginxというのもわからん。エンジンエックスと読むらしい。 Webサーバソフト。gunicornがサーバなので使うことはないか?

テンプレ的には、Procfileにgunicornを使うようにして、

web: gunicorn app:app

とだけ書けば動く。もののチュートリアルによってはさらにオプションで

web: gunicorn app:app --log-file=-

とオプションを追加すると、エラーログを標準エラー(stderr)へ出力する模様。

Settings — Gunicorn 19.7.1 documentationerrorlogを参考のこと。 なお、バージョン19.2からは標準でstderrに出力するようだ。

つまり、オプションはなくてもいい。

タイトルとURLをコピーしました