python flask 部署

  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.

    

server {
    listen       80;
    server_name  test.com;

    #access_log /var/logs/access.log;
    #error_log /var/logs/error.log;
  #ps:以下为 2种配置请选一种
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8088;
    }
  location / {
        proxy_pass http://127.0.0.1:8088;
    } 
  access_log off;
}

   (注释: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

原文地址:https://www.cnblogs.com/rufus-hua/p/4877443.html