美文网首页
Flask部署

Flask部署

作者: 鹊南飞_ | 来源:发表于2020-03-19 18:28 被阅读0次

部署环境: Ubuntu18.04
目标:Python3 + Flask + Uwsgi + supervisor

1. 安装对应的环境

1. 安装python3
lsb_release -a

因为我使用的环境是Ubuntu18.04,默认有Python3 环境

2. 更新apt源
apt update
3. 升级apt源
apt upgrade
4. 安装pip工具
apt install python3-pip

输入y确定,会自动安装的


pip
5. 安装Flask
pip3 install flask
flask
6. 安装uwsgi
pip3 install uwsgi
uwsgi
7. 安装supervisor
apt install supervisor
supervisor

2. 部署

假设flask只有一个主程序文件main.py,且该文件位于/home/kun目录下

flask目录
主程序main.py文件内容如下
from flask import Flask
  
# 注册Flask
app = Flask(__name__)


# 注册路由
@app.route('/')
def hello():
        return 'this is flask'


if __name__ == '__main__':
    app.run(host='0.0.0.0', port='5000', debug=True)

main.py
1. 直接使用python跑起来

启动,适用于开发调试阶段

 /usr/bin/python3 /home/kun/main.py

测试
测试
2. 使用uwsgi部署

新增一个uwsgi.ini文件配置uwsgi
uwsgi.ini

[uwsgi]
chdir=/home/kun
wsgi-file=main.py
callable=app
master=true
processes=1
threads=2
socket=0.0.0.0:5000
pidfile=/home/kun/uwsgi.pid
protocol=http

启动,每个项目的配置不同,需根据实际情况修改

 /usr/local/bin/uwsgi --ini /home/kun/uwsgi.ini

启动,可以添加-d参数,使uwsgi在后台运行

/usr/local/bin/uwsgi -d --ini  /home/kun/uwsgi.ini

注意,-d要在--ini前面


查看端口状态

lsof -i:5000

查看uwsgi服务状态

ps -ef | grep uwsgi

关闭uwsgi服务
-f后面跟着是进程号,需根据实际情况修改
kill -f 12084 12086
image.png
3. 使用uwsgi+supervisor

切换目录

cd /etc/supervisor/conf.d/

新增并编辑文件

vim flask.conf

文件必须以.conf结尾
flask.conf

[program:flask]
directory = /home/kun
command =/usr/local/bin/uwsgi  --ini /home/kun/uwsgi.ini
autostart = true
startsecs = 5
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /var/log/flask.log
stopasgroup = true
;killasgroup = false

更新配置

supervisorctl update

重启配置中所有进程

supervisorctl reload 

查看正在守护的进程

supervisorctl status

启动某个进程

supervisorctl start program

停止某个进程

supervisorctl stop program

重启某个进程

supervisorctl restart program

停止全部进程

supervisorctl stop all

4. 部署成系统服务

切换目录

cd /etc/systemd/system

新增并编辑文件

vim flask.service

文件必须以.service结尾
flask.service

[Unit]
Description=flask

[Service]
WorkingDirectory=/home/kun
ExecStart=/usr/local/bin/uwsgi  --ini /home/kun/uwsgi.ini
ExecStop=/usr/local/bin/uwsgi --stop /home/kun/uwsgi.pid
Restart=on-failure

[Install]
WantedBy=multi-user.target

添加服务

systemctl enable flask.service

重载服务

systemctl daemon-reload

启动服务

systemctl start flask.service

停止服务

systemctl stop flask.service

相关文章

网友评论

      本文标题:Flask部署

      本文链接:https://www.haomeiwen.com/subject/kkwlyhtx.html