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 件のコメント:
コメントを投稿