gunicorn+nginx+flaskで動かしてみた
はじめに
Flask製のアプリケーションをgunicornとnginxを使って動かす方法をメモしておきます.
動かすにあたって簡単なサンプルコードを載せておきます
ここではDebian7を対象に書きます.
アプリケーションの全体構成
ここではhelloというアプリケーションでアクセスされると「Hello!」と返してくれるウェブサプリケーションを想定します.
初期の全体のディレクトリ構成は以下のようになります
/site ├── hello.py └── tmp
FlaskでHello!を出す
hello.py
#!coding:utf-8 from flask import Flask app = Flask(__name__) @app.route('/hello', methods=['GET']) def hello(): return 'Hello!' if __name__ == '__main__': app.run()
これだけです.
flaskの細かい使い方は以前のブログ記事を参考にしてください フレームワーク素人がFlask触ってみた
nginxの設定
nginxでgunicornより生成されるsocketファイルを読むための設定を行ないます.
vim /etc/nginx/site-available/default
upsteram hello{ server unix:/site/tmp/unicorn_flask.sock } server { location /hello{ proxy_pass http://hello } }
gunicornの設定
先程nginxで指定したsocketファイルを次のように生成します.
/site上で
gunicorn hello:app --bind unix:./tmp/gunicorn_flask.sock -D
あとは
/etc/init.d/nginx reload
localhost/hello
にアクセスしてhello!が返ってくることを確認
まとめ
gunicornとnginx,flaskの連携についてまとめた.