waitress 简介
在 Python 中,waitress
是一个 纯 Python 编写的、用于生产环境的 WSGI 服务器,主要用于将 Python Web 应用(如 Flask、FastAPI、Pyramid 等)部署到生产环境中。
waitress 简介
特点:
- 纯 Python 实现:无任何 C 扩展,跨平台兼容性强。
- 生产可用:虽然是纯 Python 的实现,但非常稳定,适合部署中小型服务。
- 线程池并发:使用多线程处理请求,支持高并发。
- 易于使用:配置简单,适合快速部署 Web 应用。
安装方式
pip install waitress
快速使用示例(以 Flask 为例):
from flask import Flask
from waitress import serveapp = Flask(__name__)@app.route('/')
def hello():return "Hello, Waitress!"if __name__ == '__main__':# 用 waitress 启动,而不是 Flask 的开发服务器serve(app, host='0.0.0.0', port=8080)
常用参数
serve(app, host='0.0.0.0', port=8080, threads=8, connection_limit=1000)
host
: 监听的地址(0.0.0.0
监听所有IP)port
: 监听端口threads
: 工作线程数(默认是4,可根据机器配置调整)connection_limit
: 最大连接数限制(默认1000)
waitress 与其他 WSGI 服务器对比
特性 | waitress | gunicorn | uWSGI |
---|---|---|---|
语言实现 | 纯 Python | C + Python | C + Python |
配置复杂度 | 简单 | 中 | 复杂 |
支持平台 | 跨平台 | 跨平台 | 跨平台 |
使用场景 | 小中型项目 | 大中型项目 | 高性能场景 |
是否线程支持 | ✅ 支持 | 多进程为主 | 支持多线程 |
使用场景建议
- 非常适合在 企业内网、局域网 部署小中型项目。
- 可搭配反向代理(如 Nginx)使用,增强生产性能。
- 比 Flask 的
app.run()
更稳定,适合正式上线服务。