uWSGIを使っていこう

uWSGI(Web Server Gateway Interface)とはPythonのアプリとWebサーバのプロトコルのこと。
Django, Flask, BottleはこのWSGIの規約にそっている

uWSGIはアプリケーションサーバの一種
通信は
– UNIXドメインソケット(高速)
– HTTP

$ pip3 install uWSGI

一緒にflaskもインストールします。
$ pip3 install flask

run.py

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def api_sample():
	result = {"code": "001", "name": "apple"}
	return jsonify(ResultSet=result)

if __name__ == '__main__':
	app.run(host="0.0.0.0")

ん、どこにuWSGIが使われているんだ??

続いてuWSGIコマンドを実行する
$ uwsgi –http=0.0.0.0:8080 –wsgi-file=run.py –callable=app

なんだこれ? サーバ機能やな

### 設定ファイルから実行する
uwsgi.ini

[uwsgi]
wsgi-file=run.py
callable=app

http=0.0.0.0:8080

$ uwsgi uwsgi.ini

### iniファイルの設定項目

daemonize = /var/log/uwsgi.log
log-reopen = true
log-maxsize = 8000000
logfile-chown = on
logfile-chmod = 644

current_release = /opt/apps/current/sample_api
chdir = %(current_release)
wsgi-file = %(current_release)/run.py

processes = 4
threads = 2
thunder-lock = true
max-requests = 3000
max-requests-delta = 300
master = True

なるほど、簡易webサーバを作ってるみたいやな