Nginx + uWSGI
これを参考にすると大体分かる.
Nginxをreverse proxyとして使う場合は,
uwsgi --http-socket ...
でなく
uwsgi --socket
をつかうこと.そうしないと,
<html> <head><title>502 Bad Gateway</title></head> <body bgcolor="white"> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx/1.4.6 (Ubuntu)</center> </body> </html>
が返ってきた.documentでは,--http-socketで良いとかいてあるのだが未解決.
- /etc/nginx/nginx.conf sample
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { upstream appcluster { server 127.0.0.1:9091; server 127.0.0.1:9092; # ここを増やしていけば負荷分散になると思う. } server { listen 9090; server_name localhost; access_log /var/log/nginx/bye.access_log.log; error_log /var/log/nginx/bye.error_log.log; location / { include uwsgi_params; uwsgi_pass appcluster; } } }
Flask-Loginとの組み合わせもできた.
unicodeエラーがでるというバグが昔あったようだが直ったよう.
dbのinitializationは,fork後に行うこと.--lazy optionをつけることで実現できる.