「UWSGI」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(未訳部分の翻訳)
9行目: 9行目:
 
== サービスの起動 ==
 
== サービスの起動 ==
   
  +
{{Note|アプリケーション (Python アプリケーション) ごとにそれぞれ uwsgi サービスのインスタンスを作成するのが一番シンプルな構成です。uwsgi サービスを有効化・起動する前に、{{ic|/etc/uwsgi/}} の中に同一の名前の設定ファイルを作成してください。以下では {{ic|/etc/uwsgi/helloworld.ini}} を使っています。}}
{{Note|In the most simple configuration each application (i.e. python application) will get its own instance of uwsgi service.
 
Before uwsgi service can be enabled/started a configuration file with the same name must be created within {{ic|/etc/uwsgi/}}
 
When reading following lines assume that {{ic|/etc/uwsgi/helloworld.ini}} was created.}}
 
 
{{Style|does not comply with [[Help:Style#systemd units operations]]}}
 
   
 
スタートアップ時にデフォルトで uwsgi サービスを有効にするには、次を実行:
 
スタートアップ時にデフォルトで uwsgi サービスを有効にするには、次を実行:
31行目: 27行目:
 
== 設定 ==
 
== 設定 ==
   
{{Note|It seems /etc/uwsgi/archlinux.ini is not shipped with the standard install.}}
+
{{Note|標準インストールでは {{ic|/etc/uwsgi/archlinux.ini}} は付属していません。}}
   
 
{{ic|/etc/uwsgi/}} 内のファイルを編集することで設定ができます。パッケージに含まれているビルドファイルは {{ic|/etc/uwsgi/archlinux.ini}} に存在します。
 
{{ic|/etc/uwsgi/}} 内のファイルを編集することで設定ができます。パッケージに含まれているビルドファイルは {{ic|/etc/uwsgi/archlinux.ini}} に存在します。
37行目: 33行目:
 
詳しくは [http://uwsgi-docs.readthedocs.org/en/latest/ uwsgi のドキュメント] を見て下さい。
 
詳しくは [http://uwsgi-docs.readthedocs.org/en/latest/ uwsgi のドキュメント] を見て下さい。
   
{{Note|Please refer to the following resource for the full list of all options: http://uwsgi-docs.readthedocs.org/en/latest/Options.html}}
+
{{Note|全てのオプションのリストは次の資料を参照してください: http://uwsgi-docs.readthedocs.org/en/latest/Options.html}}
   
 
===== アプリケーションの設定 =====
 
===== アプリケーションの設定 =====
50行目: 46行目:
 
以下のような構文を使うことで uwsgi を別個に実行することも可能です:
 
以下のような構文を使うことで uwsgi を別個に実行することも可能です:
   
{{Note|It seems --wsgi-file option is not available from uwsgi installed through pacman. Official guides suggest building from sources (see http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html#installing-uwsgi-with-python-support).}}
+
{{Note|pacman でインストールした uwsgi から {{ic|--wsgi-file}} オプションを使うことはできません。公式ガイドではソースからビルドすることを推奨しています (http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html#installing-uwsgi-with-python-support を参照)}}
   
 
uwsgi --socket 127.0.0.1:3031 --plugin python2 --wsgi-file ~/foo.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 --uid --gid
 
uwsgi --socket 127.0.0.1:3031 --plugin python2 --wsgi-file ~/foo.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 --uid --gid
56行目: 52行目:
 
上記のコマンドを root で実行するのは止めてください。
 
上記のコマンドを root で実行するのは止めてください。
   
==== Php applications ====
+
==== Php アプリケーション ====
Install the php plugin for uwsgi: {{Pkg|uwsgi-plugin-php}}
+
uwsgi php プラグインをインストール: {{Pkg|uwsgi-plugin-php}}
   
 
{{hc|/etc/uwsgi/mysite.ini|<nowiki>
 
{{hc|/etc/uwsgi/mysite.ini|<nowiki>
78行目: 74行目:
 
</nowiki>}}
 
</nowiki>}}
   
Nginx configuration
+
Nginx 設定:
 
location = /index.php {
 
location = /index.php {
 
include uwsgi_params;
 
include uwsgi_params;

2015年12月25日 (金) 18:08時点における版

Uwsgi は高速で自己回復機能のある、開発者とシステム管理人に優しいアプリケーションコンテナサーバーです。C だけで書かれています。

インストール

公式リポジトリuwsgi パッケージをインストールしてください。パッケージをコンパクトにするために、プラグインは付属していません。外部プラグインは別にインストールする必要があります。C で書かれているためとても効率的なソフトウェアです。gunicorn など Python で書かれた代替も存在しますが、どうしても動作は遅くなってしまいます。

サービスの起動

ノート: アプリケーション (Python アプリケーション) ごとにそれぞれ uwsgi サービスのインスタンスを作成するのが一番シンプルな構成です。uwsgi サービスを有効化・起動する前に、/etc/uwsgi/ の中に同一の名前の設定ファイルを作成してください。以下では /etc/uwsgi/helloworld.ini を使っています。

スタートアップ時にデフォルトで uwsgi サービスを有効にするには、次を実行:

# systemctl enable uwsgi@helloworld

これで /etc/uwsgi/helloworld.ini 設定されたアプリケーションのサービスが有効になります。また、以下のコマンドを使ってソケットインターフェイスで有効にすることも可能です:

# systemctl enable uwsgi@helloworld.socket

もしくは、Emperor モード サービスを実行することができます。このモードを使うと uwsgi インスタンスで (emperor と呼ばれる) メインスーパーバイザーを使って様々なアプリ (vassal と呼ばれます) が動くようになります。有効にするには、次を入力:

# systemctl enable emperor.uwsgi

ソケットを使うこともできます:

# systemctl enable emperor.uwsgi.socket

Emperor の設定は /etc/uwsgi/emperor.ini にあります。

設定

ノート: 標準インストールでは /etc/uwsgi/archlinux.ini は付属していません。

/etc/uwsgi/ 内のファイルを編集することで設定ができます。パッケージに含まれているビルドファイルは /etc/uwsgi/archlinux.ini に存在します。

詳しくは uwsgi のドキュメント を見て下さい。

ノート: 全てのオプションのリストは次の資料を参照してください: http://uwsgi-docs.readthedocs.org/en/latest/Options.html
アプリケーションの設定

以下は python をサポートするシンプルな例です。pacman で community リポジトリから uwsgi-plugin-python または uwsgi-plugin-python2 プラグインをインストールする必要があります。

[uwsgi]
chdir = /srv/http/helloworld
module = helloworld
plugins = python

以下のような構文を使うことで uwsgi を別個に実行することも可能です:

ノート: pacman でインストールした uwsgi から --wsgi-file オプションを使うことはできません。公式ガイドではソースからビルドすることを推奨しています (http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html#installing-uwsgi-with-python-support を参照)。
uwsgi --socket 127.0.0.1:3031 --plugin python2 --wsgi-file ~/foo.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 --uid --gid

上記のコマンドを root で実行するのは止めてください。

Php アプリケーション

uwsgi の php プラグインをインストール: uwsgi-plugin-php

/etc/uwsgi/mysite.ini
[uwsgi]
; maximum number of worker processes
processes = 4
; the user and group id of the process once it’s started
uid = http
gid = http
socket = /run/uwsgi/%n.sock
master = true
chdir = /srv/http/%n
; php
plugins = php
; jail our php environment
php-docroot = /srv/http/%n
php-index = index.php
; clear environment on exit
vacuum = true

Nginx 設定:

location = /index.php {
    include uwsgi_params;
    uwsgi_modifier1 14;
    uwsgi_pass unix:/run/uwsgi/mysite.sock;
}
Nginx の設定
location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    include uwsgi_params;
    # uwsgi_pass unix:/var/run/uwsgi/helloworld.sock;
    uwsgi_pass 127.0.0.1:3031;
}

参照