• flask gunicorn gevent部署


    安装:

    pip install flask
    pip install gunicorn[gevent]

    gunicorn conf配置文件:

    #监听本机的8000端口  
    bind='0.0.0.0:8000'  
    #开启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='gunicorn.pid'  
    #记录PID  
    pidfile='debug.log' 
    access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' 
    #设置gunicorn访问日志格式,错误日志无法设置
    errorlog = "./errlog"
    reload =True
    accesslog = "./logs"
    

      

    运行:

    gunicorn -k gevent -c gun.conf  run:app
    
    gunicorn -w 1 -b 0.0.0.0:8000 run:app --error-logfile - --worker-class gevent

     备注:run:app即python模块+flask实例 

  • 相关阅读:
    线程间协作的两种方式:wait、notify、notifyAll和Condition
    Lock
    线程池ExecutorService的使用
    使用volatile的条件
    解决共享资源竞争
    并发时捕获异常
    Executor执行器
    BufferedReader 和BufferedWriter
    彻底理解Java的Future模式
    贝叶斯网络简介--翻译版
  • 原文地址:https://www.cnblogs.com/goobai/p/11172898.html
Copyright © 2020-2023  润新知