PythonのアプリケーションサーバとWebサーバを接続するための標準インターフェース定義。ウィズギーと読む。
昔々、PythonでWebアプリケーションをつくる際、
使うフレームワークによって使えるWebサーバが決まっていたり、
逆に使うWebサーバによって使えるフレームワークが決まっていたりした。
この問題を解決するために、WSGIという標準インターフェースが定義された。
uWSGIとは?
WSGIで定義されたインターフェースを実装したもの。
インストール
uwsgiをインストール。pipで入る。
pip install uwsgi
Webサーバとアプリサーバの連携
Flaskで作ったアプリをnginxで動かしてみる。
公式ページにサンプルがあったのでそれを使ってみる。
以下をmyflaskapp.pyというファイル名で保存しておく。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "I am app 1"
以下でuwsgiを起動。
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2
nginxの設定ファイルを以下のように変更する。
$ diff -u nginx.conf.default nginx.conf --- nginx.conf.default 2016-07-02 17:45:31.000000000 +0900 +++ nginx.conf 2016-07-02 18:02:36.000000000 +0900 @@ -33,7 +33,7 @@ #gzip on; server { - listen 8080; + listen 80; server_name localhost; #charset koi8-r; @@ -41,8 +41,8 @@ #access_log logs/host.access.log main; location / { - root html; - index index.html index.htm; + include uwsgi_params; + uwsgi_pass 127.0.0.1:3031; }
nginx起動。
$ sudo nginx
80番ポートにアクセスすると、flaskのアプリがみれた。
0 件のコメント:
コメントを投稿