Gunicorn:Python WSGI HTTP 服务器

Gunicorn 是一款 Python WSGI HTTP 服务器,在 GitHub 上收获了 10,591 个 Star。

正文顶部截图

README区域截图

Gunicorn 的全称是 Green Unicorn,基于 Ruby 的 Unicorn 项目预分叉工作模型移植而来。自 2010 年起,这个项目持续为 Python 应用提供生产级服务。

Gunicorn 与 Django、Flask、Pyramid 等主流 Web 框架广泛兼容。实现简洁,服务器资源占用低,响应速度较快。

最新 v25 版本带来了两项更新。第一项是为 dirty arbiters 提供每个应用的工作进程分配,这项功能针对运行 ML 模型或长时任务等重负载场景。第二项是 HTTP/2 支持,目前处于 beta 阶段,支持多路复用流。

Gunicorn 支持 WSGI 协议,兼容 Django、Flask、Pyramid 等框架。同时也支持 ASGI 协议,覆盖 FastAPI、Starlette、Quart 等异步框架。

工作进程类型方面,Gunicorn 提供了四种选择。sync 类型是默认选项,适合多数常规应用。gthread 类型使用线程池处理并发请求,适合 I/O 密集型场景。gevent 类型基于 greenlet 实现异步 I/O,可以处理大量并发连接。asgi 类型专门用于 ASGI 应用。

在协议支持方面,Gunicorn 实现了 uWSGI 二进制协议,可以与 nginx 集成。最新 beta 版本还增加了 HTTP/2 支持,通过多路复用流提升传输效率。

工作进程管理是 Gunicorn 的核心能力之一。它支持优雅的工作进程重启和关闭,可以在不中断服务的情况下更新代码或配置。当主进程收到信号时,会启动新的工作进程并逐步替换旧进程。

安装 Gunicorn 通过 pip 完成:

pip install gunicorn

启动一个基础服务,指定四工作进程:

gunicorn myapp:app --workers 4

对于 ASGI 应用,需要指定 worker class:

gunicorn myapp:app --worker-class asgi

Gunicorn 支持通过配置文件进行控制。配置项包括工作进程数量、超时时间、日志级别、绑定地址、工作进程类型等。也可以将这些参数直接写在命令行中。

Gunicorn 的完整文档位于 gunicorn.org,涵盖快速入门、配置、部署和设置参考等内容。社区支持渠道包括 GitHub Issues 和 Libera.chat 上的 gunicorn 频道。

这个项目由志愿者维护。如果你的生产环境正在使用 Gunicorn,可以考虑支持其持续发展。

Gunicorn 采用 MIT 许可证发布。

Gunicorn,可以考虑支持其持续发展。

Gunicorn 采用 MIT 许可证发布。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐