はじめに
- この記事では、Python の WSGI HTTP サーバーである Gunicorn を使って、Flask、Django、その他の WSGI アプリケーションを本番環境で実行する方法を解説します。
- はじめる前に、お使いの環境に Python と Gunicorn がインストールされていることを確認してください。Gunicorn は次のコマンドでインストールできます。
- Square Cloud がほかの依存関係と一緒にインストールできるように、
requirements.txtにもgunicornを追加してください。
requirements.txt
基本的な使い方
Gunicorn を使って Python の Web アプリケーションを実行するには、flask や django などのフレームワークによる WSGI アプリケーションが必要です。アプリケーションの準備ができたら、WSGI アプリケーションオブジェクトを含むモジュール名と変数名を把握しておく必要があります。
たとえば、
app.py というファイルに Flask アプリケーションがあり、Flask インスタンスの名前が app の場合、次のコマンドで Gunicorn を使って実行できます。
python -m gunicornは Gunicorn を Python モジュールとして実行します。--bind 0.0.0.0:80は、すべてのネットワークインターフェースのポート 80 で待ち受けるよう Gunicorn に指示します。app:appは、WSGI アプリケーションオブジェクトを含むモジュール名(app)と変数名(app)を指定します。
wsgi.py モジュールを Gunicorn に指定します (myproject はプロジェクト名に置き換えてください)。
Square Cloud での実行
Square Cloud が Gunicorn でアプリケーションを起動するように、このコマンドを設定ファイルのSTART フィールドに記述します。
squarecloud.app
Gunicorn は
0.0.0.0:80 にバインドする必要があります。Square Cloud はサブドメインへのトラフィックをアプリケーションのポート 80 に届けます。Square Cloud は環境変数 PORT も 80 に設定し、Gunicorn はこれを読み込みます。--bind オプションがない場合、PORT が設定されていれば 0.0.0.0:$PORT でリッスンします。その他のオプション
Gunicorn には動作をカスタマイズするためのオプションがいくつか用意されています。ここではいくつかのオプションを紹介します。Workers
--workers <number>
MEMORY を増やしてからワーカーを追加してください。アプリケーションが LACK_OF_RAM で停止する場合は、ワーカー数を減らしてください。
Name
--name <name>-n <name>
Worker-class
--worker-class <class>-k <class>
sync ですが、gevent、eventlet、tornado などのワーカータイプも使用できます。
その他
Gunicorn には、公式ドキュメント で確認できるさらに多くのオプションや機能があります。設定ファイル
- Gunicorn のオプションは、Python の設定ファイルで指定することもできます。Gunicorn は、実行したディレクトリ (Square Cloud ではプロジェクトのルート) にある
gunicorn.conf.pyという名前のファイルを自動的に読み込みます。それ以外のファイル名の場合は、-c <file>で指定してください。
gunicorn.conf.py
- このファイルがプロジェクトにあれば、
STARTフィールドは次のように短くできます。
squarecloud.app
次のステップ
Flask
Gunicorn の背後で Flask アプリケーションをデプロイします。
Django
Gunicorn の背後で Django プロジェクトをデプロイします。
アプリが起動しない
EADDRINUSE、LACK_OF_RAM などの起動エラーを修正します。
この記事は役に立ちましたか?
- 私たちは可能な限り最良のサポートを提供するため、細心の注意を払ってこのコンテンツを作成しました。 この記事が少しでもお役に立ったなら、ぜひ私たちの活動を応援してください。すでに多くの開発者が Google と Trustpilot で Square Cloud に 402 件のレビューで 4.9/5 の評価をつけています。あなたのレビューもぜひ残してください。あなたにとって何が最も重要かを理解する助けになります。
Google レビュー
Google レビューにあなたのレビューを残してください。
Trustpilot
Trustpilot にあなたのレビューを残してください。

