精华内容
下载资源
问答
  • gunicorn

    2020-12-01 22:30:45
    <div><p>gunicorn service consumed my CPU power reckless. I checked that admin docker use gunicorn for admin tools. i want to stop gunicorn so i think need to stop "admin" docker. Actually i ...
  • Gunicorn

    2020-11-18 20:44:39
    1. 简介 1.1 定义 Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。 1.2 特点 该Gunicorn服务器与各种Web框架...安装gunicorn成功后,通过命令行的方式可以查看gunicor

    1. 简介

    1.1 定义

    • Gunicorn(绿色独角兽)是一个遵循Python WSGI协议的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。

    1.2 特点

    • 该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。
    • Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。

    2. 使用

    2.1 安装gunicorn

    pip install gunicorn
    

    2.2 查看命令行选项

    • 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。
    $ gunicorn -h
    

    在这里插入图片描述

    2.3 直接运行

    #直接运行,默认启动的127.0.0.1::8000
    gunicorn 运行文件名称:Flask程序实例名
    

    2.4 指定进程和端口号

    -w: 表示进程(worker)
    -b:表示绑定ip地址和端口号(bind)
    -threads-t:多线程
    -k:协程,异步方案

    # 使用gevent做异步(默认worker是同步的)    多进程+协程
    gunicorn -w 8 --bind 0.0.0.0:8000 -k 'gevent' 运行文件名称:Flask程序实例名
    
    # 使用gunicorn命令启动flask项目 
    # -w 8 
    	8个进程
    # --bind 0.0.0.0:8000 
    	ip + 端口
    # -k 'gevent'
    	协程
    
    

    3. 应用

    Gunicorn是轻量级服务器,一般与轻量级框架Flask一起使用

    3.1 Flask+Gunicorn+Gevent

    实现高并发
    新建配置文件:gunicorn_config.py

    # 多进程
    import multiprocessing
    
    """gunicor+gevent 的配置文件"""
    
    # 预加载资源(占位图片,缓存数据)
    preload_app = True
    # 绑定 ip + 端口
    blind = "0.0.0.0:5000"
    # 进程数 = cpu数量 * 2 +1
    workers = multiprocessing.cpu_count() * 2 + 1
    
    # 线程数 = cpu 数量 * 2
    threads = multiprocessing.cpu_count() * 2
    
    # 等待对垒最大长度,超过这个长度的链接被拒绝
    backlog = 2048  # 队列
    
    # 工作模式--协程
    worker_class = "gevent"
    
    # 最大客户客户端并发数量,对使用线程和协程的worker的工作有影响
    # 服务器配置设置的值   1200:中小型项目   上万并发:中大型
    # 服务器硬件:宽带+数据库+内存
    # 服务器的架构:集群 主从
    worker_connections = 1200
    
    # 进程名称
    proc_name = 'gunicorn.pid'
    # 进程pid记录文件
    pidfile = 'app_run.log'
    # 日志等级
    loglevel = 'debug'
    # 日志文件名
    logfile = 'debug.log'
    # 访问记录
    access_log_format = '%(h)s %(t)s %(u)s %(q)s'
    
    # 运行方式 命令行
    gunicorn -c gunicorn_config.py flask_server:app
    

    3.2 与meinheld高并发

    • meinheld:数据结构发生改变,堆发生改变

    安装meinheld:

    pip install meinheld
    
    import multiprocessing
    
    """guicorn+meinheld 的配置文件"""
    
    # 预加载资源
    preload_app = True
    # 绑定
    blind = "0.0.0.0:5000"
    # 进程数:cpu数量 * 2 +1
    workers = multiprocessing.cpu_count() * 2 + 1
    # 线程数: cpu数量 * 2
    threads = multiprocessing.cpu_count() * 2
    # 等待队列最大长度,超过这个长度的链接将拒绝连接
    backlog = 2048
    # 工作模式
    work_class = "egg:meinheld# gunicorn_worker"
    
    # 最大客户客户端并发数量,对使用线程和协程的worker的工作有影响
    worker_connections = 1200
    
    # 进程名称
    proc_name = 'gunicorn.pid'
    # 进程pid记录文件
    pidfile = 'app_run.log'
    # 日志等级
    loglevel = 'debug'
    # 日志文件名
    logfile = 'debug.log'
    # 访问记录
    accesslog = 'access.log'
    # 访问记录格式
    access_log_format = '%(h)s %(t)s %(u)s %(q)s'
    
    # 运行方式 命令行
    gunicorn -c gunicorn_config.py flask_server:app
    
    展开全文
  • gunicorn errors

    2020-11-29 00:28:23
    INFO:gunicorn.error:Starting gunicorn 18.0 2014-06-18 16:14:08 [3020] [INFO] Listening at: http://127.0.0.1:8000 (3020) INFO:gunicorn.error:Listening at: http://127.0.0.1:8000 (3020) 2014-06-18 16:14:...
  • Gunicorn小记

    2021-04-07 18:26:52
    Gunicorn小记 pstree -ap|grep gunicorn 获取Gunicorn进程树 kill -HUP **** 重启Gunicorn kill -9 **** 关闭Gunicorn

    Gunicorn小记

    pstree -ap|grep gunicorn 获取Gunicorn进程树
    kill -HUP **** 重启Gunicorn
    kill -9 **** 关闭Gunicorn

    展开全文
  • pip安装gunicorn_gunicorn

    2021-01-14 11:44:34
    安装 pip install gunicorn基于 json tex2 板子 pip 版本对gunicorn 安装支持不稳定 特别是gunicron 19.0.3 版本之上的这里可以用`sudo apt-get install gunicorn` 安装稳定版本对于启动项目可能会出现的 ...

    安装 pip install gunicorn

    基于 json tex2 板子 pip 版本对gunicorn 安装支持不稳定 特别是gunicron 19.0.3 版本之上的

    这里可以用`sudo apt-get install gunicorn` 安装稳定版本

    对于启动项目可能会出现的 bug

    gunicorn 会加载虚拟环境之外 也就是说 在虚拟环境中会加载虚拟环境之外的安装位置 这里不会抛出 关于gunicorn 的错误

    基本的解决思路 先检查你的安装位置  退出虚拟环境 卸载gunicorn (如果使用pip管理)

    $ deactivate

    sudo pip uninstall gunicorn

    再次进入虚拟环境:

    $ pyenv activate

    (env) $ pip install gunicorn

    关于gunicorn 的启动方式

    指定为gevent 这个地方需要在项目禁止线程的使用,具体原因我也没找到, 可能与我的项目其他配置有关系

    gunicorn -k gevent -b 127.0.0.1:5000 manage:app

    指定进程启动

    gunicorn -w 2 -b 127.0.0.1:5000 manage:app

    最常用的是配置写入文件进行启动

    gunicorn -c gunicorn.conf manage:app

    配置文件

    importosimportgevent.monkey

    gevent.monkey.patch_all()importmultiprocessing

    debug=True

    loglevel= 'debug'bind= '0.0.0.0:8800'pidfile= 'log/gunicorn.pid'logfile= 'log/debug.log'

    #启动的进程数

    workers = multiprocessing.cpu_count() * 2 + 1worker_class= 'gunicorn.workers.ggevent.GeventWorker'x_forwarded_for_header= ''

    查看进程 pstree -ap | grep gunicorn

    用gevent 启动项目 一定要注意配置日志文件 后台无法打印 debug 调试

    关闭gunicorn 可以用kill 直接将主进程杀死

    对于gunicorn 进程的管理  建议使用 supervisor

    Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程

    Supervisor 是系统级别的 直接安装到虚拟环境之外就可以,用Supervisor管理的进程,supervisort监听到进程挂掉之后,会自动重启, 也可禁止监听。

    https://blog.csdn.net/dutsoft/article/details/51452598

    展开全文
  • Gunicorngunicorn配置文件详解

    万次阅读 2019-11-11 11:18:12
    python常见的web部署搭配nginx+gunicorn,下面记录一下gunicorn的配置使用。 安装gunicorn pip install gunicorn gunicorn -h # 查看使用的命令 gunicorn启动一个flask的应用程序 # app.py from flask import Flask ...

    python常见的web部署搭配nginx+gunicorn,下面记录一下gunicorn的配置使用。

    安装gunicorn

    pip install gunicorn
    gunicorn -h  # 查看使用的命令

    gunicorn启动一个flask的应用程序

    # app.py
    from flask import Flask  
    def create_app():  
        app = Flask(__name__)  
        return app  
    app = create_app()  
    @app.route('/')  
    def index():  
        return 'hello world!' 
    if __name__ == '__main__':  
        app.run()   
    • 在flask的项目的目录下启动
    # 第一个app指的是app.py文件,第二个指的是flask应用的名字;
    gunicorn -w 4 -b 0.0.0.0:8000 app:app

    gunicorn的参数详解

    -c CONFIG    : CONFIG,配置文件的路径,通过配置文件启动;生产环境使用;
    -b ADDRESS   : ADDRESS,ip加端口,绑定运行的主机;
    -w INT, --workers INT:用于处理工作进程的数量,为正整数,默认为1;
    -k STRTING, --worker-class STRTING:要使用的工作模式,默认为sync异步,可以下载eventlet和gevent并指定
    --threads INT:处理请求的工作线程数,使用指定数量的线程运行每个worker。为正整数,默认为1。
    --worker-connections INT:最大客户端并发数量,默认情况下这个值为1000。
    --backlog int:未决连接的最大数量,即等待服务的客户的数量。默认2048个,一般不修改;
    -p FILE, --pid FILE:设置pid文件的文件名,如果不设置将不会创建pid文件
    --access-logfile FILE   :  要写入的访问日志目录
    --access-logformat STRING:要写入的访问日志格式
    --error-logfile FILE, --log-file FILE  :  要写入错误日志的文件目录。
    --log-level LEVEL   :   错误日志输出等级。
    --limit-request-line INT   :  HTTP请求头的行数的最大大小,此参数用于限制HTTP请求行的允许大小,默认情况下,这个值为4094。值是0~8190的数字。
    --limit-request-fields INT   :  限制HTTP请求中请求头字段的数量。此字段用于限制请求头字段的数量以防止DDOS攻击,默认情况下,这个值为100,这个值不能超过32768
    --limit-request-field-size INT  :  限制HTTP请求中请求头的大小,默认情况下这个值为8190字节。值是一个整数或者0,当该值为0时,表示将对请求头大小不做限制
    -t INT, --timeout INT:超过这么多秒后工作将被杀掉,并重新启动。一般设定为30秒;
    --daemon: 是否以守护进程启动,默认false;
    --chdir: 在加载应用程序之前切换目录;
    --graceful-timeout INT:默认情况下,这个值为30,在超时(从接收到重启信号开始)之后仍然活着的工作将被强行杀死;一般使用默认;
    --keep-alive INT:在keep-alive连接上等待请求的秒数,默认情况下值为2。一般设定在1~5秒之间。
    --reload:默认为False。此设置用于开发,每当应用程序发生更改时,都会导致工作重新启动。
    --spew:打印服务器执行过的每一条语句,默认False。此选择为原子性的,即要么全部打印,要么全部不打印;
    --check-config   :显示现在的配置,默认值为False,即显示。
    -e ENV, --env ENV: 设置环境变量;
    

    以配置文件的方式启动

    # gunicorn.conf
    # 并行工作进程数
    workers = 4
    # 指定每个工作者的线程数
    threads = 2
    # 监听内网端口5000
    bind = '127.0.0.1:5000'
    # 设置守护进程,将进程交给supervisor管理
    daemon = 'false'
    # 工作模式协程
    worker_class = 'gevent'
    # 设置最大并发量
    worker_connections = 2000
    # 设置进程文件目录
    pidfile = '/var/run/gunicorn.pid'
    # 设置访问日志和错误信息日志路径
    accesslog = '/var/log/gunicorn_acess.log'
    errorlog = '/var/log/gunicorn_error.log'
    # 设置日志记录水平
    loglevel = 'warning'
    • 启动unicorn
    gunicorn -c gunicorn.conf app:app

    注意:

    由于windows平台不支持gunicorn,gunicorn安装成功后,启动会出现

    ‘ImportError: No module named _curses / fcntl’错误;需要下载fcntl.py文件;

    • 参考文章:

    • https://blog.csdn.net/y472360651/article/details/78538188

    展开全文
  • gunicorn 详解

    2020-12-25 11:58:49
    gunicorn 详解 Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。 和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。 gunicorn + flask 简单示例 通过gunicorn运行flask app ...
  • gunicorn error

    2020-12-26 04:24:01
    pidfile: /var/log/gunicorn/debug.log umask: 0 on_reload: pre_exec: worker_tmp_dir: None post_worker_init: limit_request_fields: 100 on_exit: config: deploy_config.py logconfig: None ...
  • add gunicorn

    2020-12-28 07:24:12
    <div><p>See https://pypi.python.org/pypi/gunicorn</p>该提问来源于开源项目:conda-forge/staged-recipes</p></div>
  • python Gunicorn

    2020-08-16 17:02:15
    Gunicorn和uwsgi则可以开启多进程。 Gunicorn是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动...
  • Gunicorn configurable

    2020-12-08 21:58:42
    <div><p>This change provides an easy way to add extra parameters to Gunicorn web-server configuration. They might be necessary to overcome long delays of API calls to highly populated lists (see ...
  • <div><p>This pull request adds gunicorn config to st2api and st2auth and fixes issues which were preventing it to work under gunicorn. <p>As I mentioned it on Slack, I've tested it and after minor...
  • Gunicorn workers

    2021-01-10 14:14:28
    <div><p>Why is the workers and threads of gunicorn set to 1? How can i change this config to increase the concurrency performance of st2? ...
  • Consider gunicorn

    2020-12-09 02:13:28
    <div><p>No reason to prematurely optimize just yet, but gunicorn should be considered if/when the site starts to hit any kind of scale <p>The default server is mostly meant for debug purposes <p>...
  • gunicorn安装

    2020-08-13 16:44:18
    sudo apt install gunicorn 指令安装的gunicorn为19版 2 不建议 sudo pip install gunicorn 该指令安装的版本较新,为20版。且涉及py2和py3的问题,有可能还有配置py下的库。所以不建议使用该指令安装。 ...
  • Gunicorn配置

    千次阅读 2018-08-26 10:06:06
    config -c CONFIG, --config CONFIG ...gunicorn -c gunicorn.conf manager:app1 bind -b ADDRESS, --bind ADDRESS Gunicorn绑定服务器套接字,Host形式的字符串格式。Gunicorn可绑定多个套接字,如: gunicor...
  • nginx-gunicorn-flask, 用于 Nginx Gunicorn Flask的Dockerfile nginx-gunicorn-flask这个库包含构建 Nginx Gunicorn Flask的Docker 图像所必需的文件。基本 Docker 映像ubuntu: 12.04安装安装 Docker 。从 D
  • gunicorn 简介

    2019-04-15 09:01:00
    Gunicorn使用prefork master-worker模型(在gunicorn中,master被称为arbiter),能够与各种wsgi web框架协作。gunicorn的文档是比较完善的,这里也有部分中文翻译,不过还是建议直接读英文文档。笔者并没有在项目中...
  • gunicorn配置

    2019-03-08 19:46:04
    安装gunicorn gunicorn -h # 查看使用的命令 gunicorn启动一个flask的应用程序 # app.py from flask import Flask def create_app(): app = Flask(__name__) return app app = crea...
  • gunicorn 命令报错

    2020-12-25 20:19:20
    <div><p>执行gunicorn app:app -c gunicorn.conf.py时报错: -bash: gunicorn: command not found</p><p>该提问来源于开源项目:YinAoXiong/12306_code_server</p></div>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,451
精华内容 2,180
关键字:

gunicorn