revision-up-to: | 17812 (1.4) |
---|
uWSGI は、ピュア C で書かれた、高速で自己回復機能のある、開発者とシステム管理 者に優しいアプリケーションコンテナサーバです。
uWSGI の Wiki にはいくつかの インストール条件 が書かれています。 Python の パッケージマネージャである pip を使うと、 uWSGI のどのバージョンのインストール も 1 つのコマンドでインストールできます。例えば:
# 現在の安定バージョンをインストールします
$ sudo pip install uwsgi
# または LTS (long term support) バージョンをインストールします
$ sudo pip install http://projects.unbit.it/downloads/uwsgi-lts.tar.gz
uWSGI はクライアント・サーバモデルで動作します。 Web サーバ (例えば Nginx, Apache など) は、動的なコンテンツを配信する Django-uWSGI の「ワーカー」プロセ スと通信します。もっと詳しく知るには、WSGI の バックグラウンドドキュメント を見てください。
uWSGI はプロセスを設定する複数の方法をサポートしています。 uWSGI の 設定ドキュメント と 設定例 を見てください。
以下は uWSGI サーバを起動するコマンドの例です:
uwsgi --chdir=/path/to/your/project
--module='mysite.wsgi:application' \
--env DJANGO_SETTINGS_MODULE=mysite.settings \
--master --pidfile=/tmp/project-master.pid \
--socket=127.0.0.1:49152 \ # ソケットファイルも使えます
--processes=5 \ # ワーカープロセスの数
--uid=1000 --gid=2000 \ # もし root で実行する場合、 uwsgi は権限を落とせます
--harakiri=20 \ # 20 秒以上かかるプロセスを再生成します
--limit-as=128 \ # プロジェクトを 128 MB に制限します
--max-requests=5000 \ # 5000 リクエストに応答したらプロセスを再生成します
--vacuum \ # exit する時に環境をクリアします
--home=/path/to/virtual/env \ # virtualenv への追加パス
--daemonize=/var/log/uwsgi/yourproject.log # プロセスをバックグラウンドで実行します
ここでは mysite
という名前のトップレベルプロジェクトパッケージがあり、その
中に WSGI の application
を含む mysite/wsgi.py
があることを仮定し
ています。このレイアウトは、 Django の最近のバージョンで django-admin.py
startproject mysite
(mysite
の箇所にはプロジェクト名が入ります) を実行し
た時に作られるものです。このファイルがない場合、自分で作る必要があります。この
ファイルに書くべきデフォルトの内容と、追加できる内容については
WSGI 環境にデプロイする方法 ドキュメントを参照してください。
この例で Django 用のオプションは以下の通りです:
chdir
: Python の import パスに必要なディレクトリのパスです。 –
例では mysite
パッケージを含むディレクトリです。module
: 使われる WSGI モジュール – おそらく startproject
が
作った mysite.wsgi
モジュールです。env
: 少なくとも DJANGO_SETTINGS_MODULE
を含める必要があります。home
: プロジェクトの virtualenv への追加パスです。以下は ini ファイルでの設定例です:
[uwsgi]
chdir=/path/to/your/project
module='mysite.wsgi:application'
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/yourproject.log
以下は設定ファイルの使い方の例です:
uwsgi --ini uwsgi.ini
uWSGI ワーカーの起動、停止、リロードについて情報を得るには、 uWSGI プロセスの管理 ドキュメントを参照してください。
Oct 26, 2017