您的位置:首页 > 脚本大全 > > 正文

linux部署flask项目(用uWSGI和Nginx部署Flask项目的方法示例)

更多 时间:2021-10-07 00:45:45 类别:脚本大全 浏览量:1161

linux部署flask项目

用uWSGI和Nginx部署Flask项目的方法示例

概况

在开发过程中,我们一般直接用python命令直接运行flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行的flask程序性能会比较低。可以采用uwsgi+nginx进行部署。

uwsgi

在部署之前,我们得先了解几个概念

  • wsgi web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
  • uwsgi 是一种传输协议,用于定义传输信息的类型。
  • uwsgi 是实现了uwsgi协议wsgi的web服务器。

部署

首先准备一个flask程序,名字run.py

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • from flask import flask
  •  
  • app = flask(__name__)
  •  
  • @app.route("/")
  • def index():
  •   return '部署'
  •  
  • if __name__ == '__main__':
  •   app.run()
  • 安装uwsgi

  • ?
  • 1
  • pip install uwsgi
  • 在项目的目录创建一个uwsgi的配置文件

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • [uwsgi]
  • #配合nginx使用
  • socket = 127.0.0.1:8000
  • #项目路径 /users/xiaoyuan/desktop/flask_test
  • chdir      = 自己项目路径
  • #wsgi文件 run就是flask启动文件去掉后缀名 app是run.py里面的flask对象
  • module     = run:app
  • #指定工作进程
  • processes    = 4
  • #主进程
  • master     = true
  • #每个工作进程有2个线程
  • threads = 2
  • #指的后台启动 日志输出的地方
  • daemonize    = uwsgi.log
  • #保存主进程的进程号
  • pidfile = uwsgi.pid
  • #虚拟环境环境路径
  • virtualenv = /users/xiaoyuan/.virtualenvs/flask_test
  • 然后配置nginx,找到nginx的配置文件nginx.conf,在http块下加上下面代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • server {
  •  # 监听端口
  •   listen 80;
  •   # 监听ip 换成服务器公网ip
  •   server_name 127.0.0.1;
  •  
  •  #动态请求
  •  location / {
  •   include uwsgi_params;
  •   uwsgi_pass 127.0.0.1:8000;
  •  }
  •  #静态请求
  •  location /static {
  •  alias /users/xiaoyuan/desktop/flask_test/static;
  •  
  •  }
  • }
  • 启动

    启动uwsgi

  • ?
  • 1
  • uwsgi --ini uwsgi.ini
  • 启动nginx

  • ?
  • 1
  • /etc/init.d/nginx start
  • 然后访问nginx监听的ip,由于我在本地部署,就直接访问http://127.0.0.1:80/

    linux部署flask项目(用uWSGI和Nginx部署Flask项目的方法示例)

    其他命令

    uwsgi重启

  • ?
  • 1
  • uwsgi --reload uwsgi.pid
  • uwsgi停止

  • ?
  • 1
  • uwsgi --stop uwsgi.pid
  • 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://juejin.im/post/5ccd3695f265da03587c0d9d

    标签:Nginx Flask uWSGI
    您可能感兴趣