くろねこ日記

ソフトウェアに関する技術メモが多いです.

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の連携についてまとめた.