Python uWSGI インストール設定
この記事では、簡単な WSGI アプリケーションと一般的な Web フレームワークのデプロイ方法を主に紹介します。
Ubuntu/Debian を例にとり、まず依存パッケージをインストールします。
apt-get install build-essential python-dev
Python で uWSGI をインストール
1、pip コマンドを使用:
pip install uwsgi
2、インストールスクリプトをダウンロード:
curl http://uwsgi.it/install | bash -s default /tmp/uwsgi
uWSGI バイナリを /tmp/uwsgi にインストールします。変更することもできます。
3、ソースコードからのインストール:
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.tar.gz cd uwsgi-latest make
インストールが完了すると、現在のディレクトリに uwsgi バイナリファイルが生成されます。
最初の WSGI アプリケーション
簡単な "Hello World" から始めましょう。ファイル foobar.py を作成します。コードは次のとおりです。
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
uWSGI Python ローダーが検索するデフォルト関数application 。
次に、uWSGI を起動して HTTP サーバーを実行し、プログラムを HTTP ポート 9090 にデプロイします。
uwsgi --http :9090 --wsgi-file foobar.py
並行性と監視の追加
デフォルトでは、uWSGI は単一のプロセスと単一のスレッドで起動します。
使用できます--processesオプションを使用してプロセスを追加するか、または--threadsオプションを使用してスレッドを追加し、両方を同時に使用することもできます。
uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2
上記のコマンドにより、4 つのプロセスが生成され、各プロセスには 2 つのスレッドがあります。
監視タスクを実行する場合は、stats サブシステムを使用できます。監視データの形式は JSON です。
uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
uwsgitop(Linux の top コマンドに類似)をインストールして、監視データを確認できます。
pip install uwsgitop
Webサーバーと組み合わせて使用
uWSGI と Nginx Web サーバーを組み合わせて使用することで、より高い並行性能を実現できます。
一般的な nginx 設定は次のとおりです。
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
上記のコードは、nginx が受信した Web リクエストをポート 3031 の uWSGI サービスに渡して処理することを示しています。
次に、uWSGI を起動して、ローカルで uwsgi プロトコルを使用できます。
uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
Web サーバーが HTTP を使用する場合、uWSGI にローカルで http プロトコルを使用するように指示する必要があります(これは、プロキシを自動生成する –http とは異なります)。
uwsgi --http-socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
Django のデプロイ
Django は最もよく使用される Python Web フレームワークです。Django プロジェクトが /home/foobar/myproject にあると仮定します。
uwsgi --socket 127.0.0.1:3031 --chdir /home/foobar/myproject/ --wsgi-file myproject/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
--chdirプロジェクトのパスを指定するために使用します。
上記のコマンドを yourfile.ini 設定ファイルにまとめることができます。
[uwsgi] socket = 127.0.0.1:3031 chdir = /home/foobar/myproject/ wsgi-file = myproject/wsgi.py processes = 4 threads = 2 stats = 127.0.0.1:9191
次に、以下のコマンドを実行するだけで済みます。
uwsgi yourfile.ini
Flask のデプロイ
Flask は人気のある Python Web フレームワークです。
ファイル myflaskapp.py を作成します。コードは次のとおりです。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<span style='color:red'>I am app 1</span>"
以下のコマンドを実行します:
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191その他の拡張機能