flask在开发的时候,经常启动本身进行调试(本身可以设置监听的端口,例如 在app.run(port=8088),当然默认不设置端口为5000)。但生产环境经常使用uswgi充当flask的宿主,然后使用nginx 转跳uswgi,因为本身uswgi处理文件功能并不强大,通常nginx会把单独处理css,js等文件,将flask的请求 转跳到 uswgi上.
nginx转跳uswgi也有2种方式 一种是负载的http转跳,还有一种是 socket的转跳. 关于2种方案的区别:http转跳时需要配置一些独立的head,因为如果你的程序如果需要获取用户的ip 之类的,拿到的是nginx机器的地址。而socket链接方式 你就不用担心了。你可以认为这是直接请求道uswgi.(注释:http转跳是配置 “proxy_pass 127.0.0.1:8088” 这种方式 ,socket转跳 是通过 "uwsgi_pass 127.0.0.1:8088" ,同时 这2中方式需要 在配置uswgi时设置 uwsgi --socket 8088 或者 uwsgi --http 8088)
通常flask 配置 uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
原文:http://www.cnblogs.com/rufus-hua/p/4877443.html