「UWSGI」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) |
(未訳部分の翻訳) |
||
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| |
+ | {{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| |
+ | {{Note|全てのオプションのリストは次の資料を参照してください: http://uwsgi-docs.readthedocs.org/en/latest/Options.html 。}} |
===== アプリケーションの設定 ===== |
===== アプリケーションの設定 ===== |
||
50行目: | 46行目: | ||
以下のような構文を使うことで uwsgi を別個に実行することも可能です: |
以下のような構文を使うことで uwsgi を別個に実行することも可能です: |
||
− | {{Note| |
+ | {{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 |
+ | ==== Php アプリケーション ==== |
− | + | uwsgi の php プラグインをインストール: {{Pkg|uwsgi-plugin-php}} |
|
{{hc|/etc/uwsgi/mysite.ini|<nowiki> |
{{hc|/etc/uwsgi/mysite.ini|<nowiki> |
||
78行目: | 74行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | Nginx |
+ | Nginx 設定: |
location = /index.php { |
location = /index.php { |
||
include uwsgi_params; |
include uwsgi_params; |
2015年12月25日 (金) 18:08時点における版
Uwsgi は高速で自己回復機能のある、開発者とシステム管理人に優しいアプリケーションコンテナサーバーです。C だけで書かれています。
インストール
公式リポジトリの uwsgi パッケージをインストールしてください。パッケージをコンパクトにするために、プラグインは付属していません。外部プラグインは別にインストールする必要があります。C で書かれているためとても効率的なソフトウェアです。gunicorn など Python で書かれた代替も存在しますが、どうしても動作は遅くなってしまいます。
サービスの起動
スタートアップ時にデフォルトで 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/
内のファイルを編集することで設定ができます。パッケージに含まれているビルドファイルは /etc/uwsgi/archlinux.ini
に存在します。
詳しくは uwsgi のドキュメント を見て下さい。
アプリケーションの設定
以下は python をサポートするシンプルな例です。pacman で community リポジトリから uwsgi-plugin-python または uwsgi-plugin-python2 プラグインをインストールする必要があります。
[uwsgi] chdir = /srv/http/helloworld module = helloworld plugins = python
以下のような構文を使うことで uwsgi を別個に実行することも可能です:
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; }