- その2は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)
はsync
,eventlet
、gevent
、tornado
、gthread
のいずれかです。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
コメント