Gunicorn简介、安装、配置、启动

1 简介

Gunicorn“绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。
Gunicorn 服务器作为wsgi app的容器,能够与各种Web框架兼容(flask,django等),得益于gevent等技术,使用Gunicorn能够在基本不改变wsgi app代码的前提下,大幅度提高wsgi app的性能。

2 安装

安装很简单:

pip install gunicorn

3 配置与启动

Gunicorn可以以三种方式读取配置信息。
第一种方式:从framework定义的配置信息中读取,目前只对 Paster 框架有效。本方式较少用到。
第二种方式:在命令行中定义,命令行中定义的配置信息将会覆盖掉框架中定义的相同的参数名的值。
第三种方式:将所有的参数信息,放到一个python文件中,只要是在命令行中可以定义的参数中,在配置文件中都可以定义。

3.1 命令行配置参数

命令行有哪些参数可以通过gunicorn -h 查到。种类相当多。
常用的有

参数短参数说明默认值
–bind-b绑定服务的IP和端口号。
–workers INT-w工作线程数量1
–backlog服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error。建议值64-2048。
–worker_connections客户端最大同时连接数。只适用于eventlet, gevent工作方式。
–pidfilepid存储文件路径。
–access-logfile FILE访问日志文件
–error-logfile FILE–log-file错误日志文件
–daemon-D后台运行False
–worker-class-k有 sync, eventlet(并发), gevent, tornado, gthread选项sync(同步)
–reload当代码有修改时,自动重启workers。适用于开发环境。
–reload_extra_files扩展reload配置,增加templates,configurations等文件修改监控。
–check_config检查配置

例子:

gunicorn --workers=4 --bind=0.0.0.0:8000 run:app

下面是run.py的内容:

# run.py
from flask import Flask

app = Flask(__name__)
3.2 python文件配置参数

命令行中定义的参数,都可以放在配置文件中。
下面是例子:

#config.py
import multiprocessing

bind = "0.0.0.0:8000"
workers = multiprocessing.cpu_count() * 2 + 1

backlog = 2048
worker_class = "eventlet"
worker_connections = 1000
daemon = True
pidfile = 'log/gunicorn.pid'
accesslog = 'log/access.log'
errorlog = 'log/gunicorn.log'
gunicorn --config=config.py run:app

命令行参数和文件配置还可以混合使用,此时命令行中定义的配置信息将会被优先采用。

gunicorn --config=config.py --worker-class=gevent run:app

4. 服务重启、退出等

4.1 获取Gunicorn进程树

用下面的命令获取gunicorn的Master PID

#方法1
pstree -ap|grep gunicorn
#方法2
ps -ef|grep gunicorn 
4.2 重启Gunicorn进程

HUP(终端断线)信号发出之后,worker进程会进行被杀掉,并启动新的进程,保证源代码的修改会反映进来。master进程不会变。

kill -HUP master_pid

参数说明:HUP表示“终端断线”之意

4.3 优雅停止Gunicorn进程
kill -9 master_pid

下面的命令是将gunicorn配置在supervisor之下的情况。仅做参考。

# 重新加载配置
sudo supervisorctl reload
# 重启动
sudo supervisorctl restart all(你想重启的单个应用名字也可以)
# 查看状态
sudo supervisorctl status 

如果启动问题 先去看看log。


参考1: gunicorn简介、架构、安装与配置

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值