服务器版本:centos7
python版本:python3.6
主要功能:使用uwsgi部署flask接口,支持高并发
大致流程就是,在服务器上新建一个python虚拟环境,并下载好相关python库,使用uwsgi启动flask脚本。
首先得确保你的机器上安装了python3,centos7自带的python版本是2.7.
具体安装步骤:https://blog.csdn.net/t8116189520/article/details/81976755
uwsgi可以说事是目前部署python站点最方便的组件了,并且极大的提高了站点支持高并发访问的性能。
uwsgi是一个接口规范,简单地说,它告诉你应该实现哪些方法来在服务器和应用程序之间传递请求和响应。
用以下的简单flask模板manage.py做一个案例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
接下来是部署的完整过程:
1.在linux服务器端搭建python虚拟环境。
# 下载虚拟环境包
pip3 install virtualenv
# 使用命令新建虚拟环境,我的目录是/opt/myproject
# 在当前目录创建一个名为venv的虚拟环境
virtualenv venv
# 如果指定python版本
virtualenv -p /usr/bin/python3 venv
# 查看当前虚拟环境的python版本
python --version
# 激活虚拟环境
source venv/bin/activate
# 在虚拟环境中安装flask、uwsgi库
pip install uwsgi
pip install flask
2.在venv目录下新建一个uwsgi.ini配置文件,并配置(此时已经激活虚拟环境)
# 新建文件
touch uwsgi.ini
# 写入内容
vi uwsgi.ini
配置内容:
[uwsgi]
# manage.py文件所在目录
chdir = /opt/myproject/venv/flask-test
callable = app
# flask文件名
wsgi-file= manage.py
# 进程数
processes = 5
# 使用5001端口
http = 0.0.0.0:5001
# 日志输出目录
daemonize = /opt/myproject/venv/flask-test/flask.log
pidfile = project-master.pid
master = true
3.启动项目
将manage.py上传到服务器,放在/opt/myproject/venv/flask-test 目录下
# 启动命令(在venv目录下)
uwsgi uwsgi.ini
# 查看进程是否启动成功
ps -ef | grep uwsgi
4.查看日志输出 (进入/opt/myproject/venv/flask-test/目录下)
命令:tailf flask.log
5.查看进程是否启动 命令:ps -ef|grep uwsgi
备注:
可能出现问题:
pip install uwsgi 之后,运行uwsgi 报错:[uwsgi: command not found]
解决方案:建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
备注2:
#### 启动命令:
uwsgi --ini xxx.ini
#### 重启:
uwsgi --reload xxx.pid
#### 停止:
uwsgi --stop xxx.pid