nginx + uWSGI
posted by jun-g at Sat, 19 Oct 2013 11:55 JST
先日作ったアプリ は Apache + mod_wsgi で動かしていたのですが、前から興味があった nginx + uWSGI で動かすようにしてみました、というメモ。
インストール
OS は FreeBSD なので ports からインストール。
# cd /usr/ports/www/nginx && make BATCH=yes install clean # cd /usr/ports/www/uwsgi && make BATCH=yes install clean
uWSGIの設定/起動
/etc/rc.conf に以下の記述を追加。
uwsgi_enable="YES" uwsgi_profiles="ebook" uwsgi_ebook_enable="YES" uwsgi_ebook_flags="--wsgi-file /usr/local/www/ebook/ebook.wsgi"
以下のコマンドで起動。
# /sbin/service uwsgi start
nginxの設定/起動
/usr/local/etc/nginx/nginx.conf の / の設定の下あたりに以下の設定を追加。
rewrite ^/ebook$ /ebook/ permanent; location /ebook { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi-ebook.sock; fastcgi_split_path_info ^(/ebook)(.*)$; uwsgi_param PATH_INFO $fastcgi_path_info; }
1行目は末尾に / 無しでアクセスされた場合に / 付き URL にリダイレクトする設定。
あと、 mod_wsgi や wsgiref.simple_server で動作させた場合と PATH_INFO の内容が異なっていたので、 fastcgi_split_path_info を使って他と同じ PATH_INFO が取れるようにする設定が後半2行。
後は /etc/rc.conf に以下の記述を追加。
nginx_enable="YES"
してからの起動。
# /sbin/service nginx start
WSGI サーバーは他にも沢山あるので色々試してみようと思います。