安装

[root@mylinux2 ~]# pip3 install uwsgi

在这里插入图片描述

编写uwsgi.ini文件

在项目目录下touch一个ini文件(xml,yaml格式),名称随意,vim进去

[uwsgi]
socket = 0.0.0.0:8000 # 设置0.0.0.0表示可以接收不同服务器的nginx发送过来的请求,127.0.0.1表示只接收同一服务器发送过来的请求, 8000为应用内的监听端口# http = 0.0.0.0:8000 # http为直接作为web服务器启动
# http = :5000     # 启动程序时所使用的地址和端口,通常在本地运行flask项目,
chdir = /home/flaskproject/         # 项目目录
wsgi-file = manage.py     # flask程序的启动文件,通常在本地是通过运行 python 
manage.py runserver 来启动项目的callable = app       # 程序内启用的application变量名
processes = 4       # 处理器个数,进程个数 .一般最大填写CPU的核心数量
threads = 2       # 线程个数 ,默认的linux系统中一个进程最多2048个线程。 1 ~ 1024
stats = 127.0.0.1:9191     # 获取uwsgi统计信息的服务地址 ,只能本机访问
pidfile = uwsgi.pid       # 保存pid信息,方便停止服务和重启的时候用
daemonize = ./log/uwsgi.log # 后台运行时记录uwsgi的运行日志
lazy-apps = true             # 优雅重启 ,当需要连接cassandra时,uwsgi无法启动服务,可以使用该选项设置
master-fifo = /opt/mt-search/web-service/mfifo   # 使用chain-reloading 逐个work重启,服务不中断, 命令是 echo c > mfifo
touch-chain-reload = true # 修改app.py内任意东西 保存即可重启uwsgi

准备生产环境下的项目

1、导入python项目的包依赖文件:requirements.txt
第一种: pip freeze > requirements.txt------->把所有环境的依赖包都导出
第二种 : pip install pipreqs安装好了之后,执行命令: pipreqs ./ --encoding=utf-8----> 仅仅导出项目所依赖的包
2、修改代码,将项目传到linux中

app = create_app('product')

启动

uwsgi --ini uwsgi.ini   # 启动后直接进控制台
nohup uwsgi --ini uwsgi.ini &    # 后台启动uwsgi服务器
uwsgi --reload uwsgi.pid  # 重启
uwsgi --stop uwsgi.pid # 停止
kill -9 pid   # 关闭服务,直接kill uwsgi的端口
Logo

更多推荐