Search on the blog

2016年7月2日土曜日

WSGI

WSGIとは?
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 件のコメント:

コメントを投稿