C/C++教程

Gunicorn基本使用

本文主要是介绍Gunicorn基本使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

之前写代码需要启个nginx反向代理uwsgi, 很麻烦,后面干脆直接通过eventlet的monkeypath对http做协程处理,再之后考虑到易用性,换成了gunicorn.

Big Picture

Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点

配置文件模版

#监听本机的5000端口
bind='127.0.0.1:5000'
#开启4个进程
workers=4
#服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error。
backlog=2048
#工作模式为gevent
worker_class="gevent"
#工作线程数量,该配置只在worker_class是gthread的时候游泳,gevent,eventlet 等用的是协程
threads=10
#客户端的最大连接数,只在eventlet, gevent模式下有用
worker_connections=200
#worker重启之前处理的最大requests数, 缺省值为0表示自动重启disabled。主要是防止内存泄露。
max_requests=50
#优雅重启超时时间,重启后等待10s确认连接已经处理完了。
graceful_timeout=10
# debug模式
debug=True
#pid文件
pidfile='debug.log'
#日志级别
loglevel=‘debug'
#日志输出格式化
access_log_format=%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"

启动

python3 gunicorn -c conf/gunicorn.conf app-demo:app

app-demo

from flask import Flask  
  
def create_app():  
    app = Flask(__name__)  
    return app  
app = create_app() 
个人公众号, 分享一些日常开发,运维工作中的日常以及一些学习感悟,欢迎大家互相学习,交流

在这里插入图片描述

这篇关于Gunicorn基本使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!