flask gunicorn 部署

flask gunicorn 部署

之前部署python的web项目都是用的uwsgi进行部署的,昨天晚上看大佬的文章,看到人家大佬使用的gunicorn进行部署的,今天就来研究下gunicorn部署

简介

部署web项目的大致结构,nginx比较擅长处理接收客户端发送给服务器的请求,gunicorn处理flask的请求,提高并发量,设置进程数量等等,Supervisor负责监控gunicorn是否挂掉了,如果挂掉了就拉起来继续干。

安装gunicorn

# 我这里是在虚拟环境下进行的哈,没有的pip install virtualenv,当然你也可以选择不
pip3 install gunicorn

flask服务

# 这里是flask的测试服务,直接copy代码演示就行了,节约时间,时间和宝贵的。
from flask import Flask

app = Flask(__name__)


@app.route('/', methods=['GET'])
def index():
    return 'test gunicorn---hello world---\n'


if __name__ == '__main__':
    app.run()

配置

首先配置nginx

这里直接添加一个代理就可以了

server {
        listen 5000;
        location / {
            proxy_pass    http://127.0.0.1:5001;
        }
    }

配置gunicorn

gunicorn这个玩意儿可以直接gunicorn -w 3 -b 127.0.0.1:5001 main:app 这样直接启动的,不过麻烦。所以我直接录配置文件的

# 项目目录下创建一个.py 结尾的文件,因为这里要获取cup数量之类的操作
from gevent import monkey
monkey.patch_all()
import multiprocessing
debug = True
loglevel = 'debug'
bind = '127.0.0.1:6800'
pidfile = '/home/practice_gunicron/gunicorn.pid'
logfile = '/home/practice_gunicron/gunicorn.log'
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = 'gevent'

安装supervisor并启动supervisor

# 还是老配方
pip3 install supervisor
# 初始化配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
# 启动supervisor服务
supervisord -c /etc/supervisor/supervisord.conf

配置守护进程

守护进程配置放在/etc/supervisor下面并以conf结尾

配置文件修改下,引入的文件
[include]
files = /etc/supervisor/*.ini
[program:demo]
command=/www/demo/venv/bin/gunicorn -c /pushy/blog/gconfig.py run:app
directory=/www/demo  //项目目录
user=root
autorestart=true //设置自动重启
startretires=3  //重启失败3次

最后supervisorctl start demo 启动相应的守护进程就可以了

参考 supervisor https://www.cnblogs.com/Dicky-Zhang/p/6171954.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值