Flaskをnginx+fastcgiで動かす
Flaskをnginxで動かしてみたくていろいろ調べてみました。
参考
Flask の公式ドキュメントこの通り実行すれば動きますです。
ソース
Flaskのアプリ一式
/var/www/flask/myapp
http://bitbucket.org/ehren/flask_training
設定ファイル
.sockはfcgiファイルとnginx設定ファイルで同じパスになるようにすること。
- /etc/nginx/sites-available/for_flask
location / { try_files $uri @training; } location @training { include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param SCRIPT_NAME ""; fastcgi_pass unix:/tmp/flask-fcgi.sock; }
- mysite.fcgi
#!/usr/bin/python import sys,os sys.path.append('/var/www/flask/myapp') from flup.server.fcgi import WSGIServer from training import app as application WSGIServer(application, bindAddress='/tmp/flask-fcgi.sock').run()
作業内容
実行
nginxはfastcgi用のスクリプトをたたいてくれないとのこと*1なので
screenなどをつかって実行します。ubuntuではwww-data権限で実行しましょう
$ screen $ sudo chmod +x /var/www/flask/mysite.fcgi $ sudo -u www-data /var/www/flask/mysite.fcgi
宿題
実際には起動スクリプトを/etc/init.d に登録する必要があるのですが、
今日はうまく行きませんでした。なんでしょうねぇorz
というわけで宿題です。
まとめ
Flaskは公式ドキュメントが充実してるのでいろいろ読んでみると良いと思います。
とくにPatterns for Flask — Flask 0.9dev documentationは一度読んでみるとPythonの近頃のライブラリがいろいろ紹介されていて楽しいです。