Gunicorn

Gunicorn是一个遵循WSGI协议的轻量级、高性能HTTP服务器,源于Ruby的Unicorn。它采用预 fork 服务器模型,通过master进程管理worker进程。Gunicorn提供了多种worker类型,包括同步、异步(基于协程的gevent和eventlet、tornado)等,选择依赖于具体应用场景。服务器核心数乘以2+1可作为默认worker数量。配置灵活且易于管理,Gunicorn与uWSGI在不同工作模式下各有优势,选择取决于服务的阻塞响应情况。
摘要由CSDN通过智能技术生成

做团队技术分享之前写了稿子, 防止自己脑子一片空白不知道讲什么. 干脆放到自己这里吧.

Gunicorn是一个遵循WSGI协议的HTTP SERVER,WSGI应该都比较熟悉,简单略过一下,一般我们都不会把项目的接口直接暴露在互联网中,前面都会加一个web服务器,比如nginx,但是不是所有的服务器和项目框架都能完美的搭配使用,这就需要WSGI协议的存在,web服务器和应用框架双方只需要提供一个WSGI的接口,就可以各自发挥自己的专长了。在Python中应用比较广泛的两种HTTP服务器就是Gunicorn和uWSGI。

​ Gunicorn在从RUBY的unicorn移植过来的,属于轻量级,高性能的Http server。

Gunicorn的服务器模型是pre-fork, pre-fork就是在还没有收到请求的时候,提前开启设定的进程数,等待并处理接到的请求,比起来fork模式,一定程度上减少了响应的延迟,但是如果请求很多的话,进程不够用还是会启动新的进程,响应变慢。pre-fork模型,就意味着有一个master的进程,来控制其他的worker。

他们的工作模式大概是下面这张图。从别的博主搬来的.
在这里插入图片描述

其实这个master进程就是一个循环,不断监听不同的进程发来的信号,并作出响应的动作。

master根据侦听来的信号来控制要增加进程或者减少进程数,master是不处理外部的http请求的,只用来控制其他worker。

这个Worker有几种不同的工作模式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值