【Flask】使用gevent部署flask

By Heanny
2020-08-26
116 read

目的

使用 gevent 非阻塞的运行服务器程序

步骤

  1. 安装
    pip install gunicorn
    
  2. 在全局添加猴子
    这能修改 python 默认的 IO 行为,让标准库变成 协作式(cooperative)的 API。注意引入 gevent 后,不能再用原来的方式启动我们的 web 应用了

    from gevent import monkey
    monkey.patch_all()  # 打上猴子补丁
    
  3. 配置gunicorn.conf文件

    #监听本机的8000端口
    bind='0.0.0.0:5001'
    #开启4个进程
    workers=4
    #线程
    #threads=8000
    keepalive=1
    #在keep-alive连接上等待请求的秒数,默认情况下值为2。一般设定在1~5秒之间。
    daemon=True
    worker_connections=1000000
    #worker_connections最大客户端并发数量,默认情况下这个值为1000。此设置将影响gevent和eventlet工作模式
    graceful_timeout=0
    #graceful_timeout优雅的人工超时时间,默认情况下,这个值为30。收到重启信号后,工作人员有那么多时间来完成服务请求。在超时(从接收到重启信号开始)之后仍然活着的工作将被强行杀死
    limit_request_line=8048
    #limit_request_line HTTP请求行的最大大小,此参数用于限制HTTP请求行的允许大小,默认情况下,这个值为4094。值是0~8190的数字。此参数可以防止任何DDOS攻击
    backlog=8048
    #工作模式为gevent
    worker_class="gevent"
    debug=True
    chdir = './'
    proc_name='./log/gunicorn.pid'
    #记录PID
    pidfile='./log/debug.pid'
    access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
    #设置gunicorn访问日志格式,错误日志无法设置
    errorlog = "./log/error.log"
    reload =True
    accesslog = "./log/access.log"
    

    如果报错,请将gunicorn.conf重命名为gunicorn.py

  4. 启动

    gunicorn run:app -c gun.py -k gevent
    
论如何下载网页中的m3u8/ts视频
【flask】模块拆分の使用红图

Comments

暂无评论,还不快来坐沙发...

Leave a Reply