• 用uWSGI和Nginx部署Flask项目


    概况

    (虚拟环境已经搭好,不做演示)

    在开发过程中,我们一般直接用Python命令直接运行Flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行的Flask程序性能会比较低。可以采用uWSGI+Nginx进行部署。
    uWSGI
    在部署之前,我们得先了解几个概念
    wsgi web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
    uwsgi 是一种传输协议,用于定义传输信息的类型。
    uWSGI 是实现了uwsgi协议WSGI的web服务器。

    部署

    首先准备一个flask程序,名字run.py(自己的项目主目录app.py的名字)
    from flask import Flask
    ​
    app = Flask(__name__)
    ​
    @app.route("/")
    def index():
        return '部署'
    ​
    if __name__ == '__main__':
        app.run()
    

    安装uWSGI

     pip install uwsgi
    

    在项目的目录创建一个uwsgi的配置文件

    [uwsgi]
    #配合nginx使用
    socket = 127.0.0.1:8000
    #项目路径 /自己项目路径/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
    #虚拟环境环境路径(在root下的.virtualenvs下查看)
    virtualenv = /虚拟环境路径/flask_test
    

    然后配置Nginx,找到Nginx的配置文件nginx.conf,在http块下加上下面代码

    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 /自己路径下的静态文件/static;
    ​
    	}
    }
    

    启动

    启动uWSGI

    uwsgi --ini uwsgi.ini 
    

    启动Nginx(nginx是已经搭好的,直接nginx启动即可)

    然后访问Nginx监听的IP,由于我在本地部署,就直接访问http://127.0.0.1:80/

    其他命令
    uwsgi重启

    uwsgi --reload uwsgi.pid 
    

    uwsgi停止

     uwsgi --stop uwsgi.pid 
    
  • 相关阅读:
    NodeJS 难点(网络,文件)的 核心 stream 二:stream是什么
    NodeJS 难点(网络,文件)的 核心 stream 一:Buffer
    了解了这些才能开始发挥jQuery的威力
    一般公司的大体要求
    js 的垃圾回收器 原理 坑 优化-- 待续
    iframe 问题集合
    图片预加载 js css预加载
    各种插件
    Django REST framework快速入门指南
    Vue.js devtool插件安装后无法使用的解决办法
  • 原文地址:https://www.cnblogs.com/ladder/p/11935279.html
Copyright © 2020-2023  润新知