Gunicornの公式ドキュメント翻訳 その2 Guniconの起動

  • その2はGunicornの起動
  • 太字部分は翻訳者のコメント
  • 本記事の最後に用語集を用意しています。

リンク:Gunicornの公式ドキュメント

次回→未定

Gunicorn の起動

コマンドを使用して Gunicorn を実行すること、もしくは、Django、Pyramid、TurboGears などの一般的なフレームワークと統合しすることができます。
Gunicorn を本番環境にデプロイするには、Gunicorn のデプロイを参照してください。

翻訳者のコメント
この項では、Gunicornの起動テストのやり方が記載されているだけで、本番環境の場合は別項を見てね。ということのようです。

コマンド

Gunicorn をインストールすると、コマンド ライン スクリプトにアクセスできるようになります。

  • gunicorn.

gunicorn

基本的な使い方:

$ gunicorn [OPTIONS] [WSGI_APP]

WSGI_APPのところは、$(MODULE_NAME):(VARIABLE_NAME)という形式です。「MODULE_NAME」はフルのドットパス(dotted path)にすることができます。「VARIABLE_NAME」のところは、呼び出し可能なWSGIを参照します。また、WSGIはMODULE_NAMEで指定されている中から見つかるものでないといけません。

バージョン 20.1.0 で変更:構成ファイルで定義されている場合、WSGI_APP は必須ではありません。

テストアプリの例

def app(environ, start_response):
    """Simplest possible application object"""
    data = b'Hello, World!\n'
    status = '200 OK'
    response_headers = [
        ('Content-type', 'text/plain'),
        ('Content-Length', str(len(data)))
    ]
    start_response(status, response_headers)
    return iter([data])

次のコマンドでアプリを実行できるようになりました。

$ gunicorn --workers=2 test:app

変数名(app)は、関数呼び出しにすることもできます。その場合、名前はモジュールからインポートされ、アプリケーション オブジェクトを取得するために呼び出されます。これは、一般に「application factory」型と呼ばれます。

def create_app():
    app = FrameworkApp()
    ...
    return app
$ gunicorn --workers=2 'test:create_app()'

位置引数とキーワード引数も渡すことができますが、コマンド ラインではなく環境変数から構成を読み込むことをお勧めします。

一般的に使用される引数

  • [-c CONFIG, --config=CONFIG\]
    $(PATH) ,file:\$(PATH)python:\$(MODULE_NAME)のどれかの形式で構成ファイルを指定します。
  • -b BIND, --bind=BIND
    バインドするサーバー ソケットを指定します。サーバー ソケットは、次のいずれかになります。
    • $(HOST)
    • $(HOST):$(PORT)
    • fd://$(FD)
    • unix:$(PATH)
      $(HOST)はIPでも有効です。
  • -w WORKERS, --workers=WORKERS
    ワーカー プロセスの数。通常、この数は、サーバーのコアあたり 2 ~ 4 ワーカーの間である必要があります。このパラメーターの調整に関する詳細は、FAQ を確認してください。
  • -k WORKERCLASS, --worker-class=WORKERCLASS
    実行するワーカープロセスの種類。このパラメーターの意味については、必ず製品ページを読んで下さい。これを$(NAME)に設定できます。ここで、$(NAME)synceventletgeventtornadogthread のいずれかです。sync がデフォルトです。詳細については、worker_class のドキュメントを参照してください。
  • -n APP_NAME, --name=APP_NAME
    setproctitle がインストールされている場合、プロセス システム テーブルに表示される Gunicorn プロセスの名前を調整できます (ps や top などのツールに影響します)。

統合

Gunicorn は、Django および Paste Deploy アプリケーションの統合も提供します。

Django

指定されていない場合、Gunicorn はアプリケーションと同じ名前の 呼び出し可能なWSGIを探します。したがって、典型的な Django プロジェクトの場合、Gunicorn の呼び出しは次のようになります。

$ gunicorn myproject.wsgi

ノート
これには、プロジェクトが Python パス上にある必要があります。これを確認する最も簡単な方法は、manage.py ファイルと同じディレクトリからこのコマンドを実行することです。

–env オプションを使用することで、設定を読み込むためのパスを設定できます。必要な場合は、–pythonpath オプションを使用してアプリケーション パスを PYTHONPATH に追加することもできます。必要な場合は、–pythonpathオプションを使用してアプリケーション パスを PYTHONPATH に追加することもできます。

$ gunicorn --env DJANGO_SETTINGS_MODULE=myproject.settings myproject.wsgi

Paste Deployment

翻訳者はDjangoでしか使う予定はないので、ここの翻訳は省略します。

用語集

dotted path

どうやらpythonのモジュールとかを表現する時のパスのことらしい。
例:foo.hoge.class

コメント

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