syslog源码_Gunicorn源码分析01--目录结构

本文介绍了Gunicorn,一个基于Python的动态Web服务器,实现了WSGI协议,适用于Django、Flask等框架。它通过预工作者模型处理并发,支持sync、gthread、gevent等工作模式。Gunicorn仅支持类Unix系统,提供丰富的日志功能,并可以通过命令行或配置文件进行配置。文章还探讨了Gunicorn的源码结构和启动方式。
摘要由CSDN通过智能技术生成

1. Gunicorn基本介绍

Gunicorn是一个基于Python实现的动态Web服务器,实现了WSGI协议,可以与Django、Flask等Web框架集成。

与Apache、Nginx等静态Web服务器相比,Gunicorn动态处理能力强。可以通过HTTP或者Unix Socket来与之通信,以此实现动静分离。

Gunicorn由于源码调用了fcntl、fork等接口,因此只能跑在类Unix系统上,Windows上跑不了。

Gunicorn通过pre-worker模型来实现并发,worker的工作模式有sync、gthread、gevent等,即可以通过多线程、或者协程来处理请求。

Gunicorn是可配置的,可以通过命令行参数或者配置文件的形式,来完成对其配置。

Gunicorn的日志功能丰富,可以输出到控制台、日志文件或者syslog服务器,另外日志分为http请求访问日志和程序运行时的错误日志,这点借鉴了Apache的思路。

2. Gunicorn源码结构【版本为 20.0.4】

d48325e7a429f08b3e6cda0634822810.png
可发现源码文件34个,总行数为7867行,不到万行。定义了147个类,75个函数,43个全局变量。
├── app                   【与Web框架通信相关】
│   ├── base.py
│   ├── __init__.py
│   ├── pasterapp.py
│   └── wsgiapp.py
├── arbiter.py            【master进程,在gunicorn中叫arbiter】
├── config.py             【配置相关,可以通过命令行参数、配置文件等方式来配置guniconrn】
├── debug.py             
├── errors.py
├── glogging.py           【产生的日志,可以发送到屏幕或者日志文件(access和error)】
├── http                  【处理客户端发送过来的http请求】
│   ├── body.py
│   ├── errors.py
│   ├── __init__.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值