プログラミング備忘録

初級プログラマ。python、DL勉強中

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) を実行

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