flask+uWSGI+nginxでアプリを起動してみる
全体像
モジュール関係のイメージは以下のとおり
Flask - uwsgi - socket - Nginx - client
Flask
サーバサイドの処理を通常通りに記載
- serv.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): hello = "Hello world" return hello @app.route('/test') def test(): hello1 = "test" return hello1 if __name__ == "__main__": app.run()
uWSGI
flask(serv.py) を実行
- wsgi.py
from serv import app if __name__ == "__main__": app.run()
- myapp.ini
[uwsgi] module=wsgi callable=app socket=/tmp/uwsgi.sock chmod-socket=666
nginx
/etc/nginx/nginx.conf に以下の記述があることを確認
include /etc/nginx/conf.d/*.conf;
任意のconfファイルを作成し、以下を記述
- /etc/nginx/conf.d/test.conf
server { listen 60000; location / { include uwsgi_params; uwsgi_pass unix:///tmp/uwsgi.sock; uwsgi_read_timeout 1800; uwsgi_send_timeout 300; keepalive_timeout 130; send_timeout 130; proxy_send_timeout 130; proxy_read_timeout 130; } }
socketの場所はwsgiと合わせること
参考
Flask + uWSGI + Nginx でハローワールドするまで @ さくらのVPS (CentOS 6.6) - Qiita