# gunicorn wsgi服务器
# 概述
gunicorn是纯 Python 实现的高性能 Python 应用容器,无外部依赖,简单容易配置;没有性能问题前推荐使用gunicorn。
它的运行模型基于pre-fork worker 模型,既支持eventlet,也支持greenlet。
worker模型即一个manager多个worker,manager仅负责worker的管理,worker真正负责请求的处理
其特点:
能和大多数的Python Web框架兼容;
简单易上手;
轻量级的资源消耗;
目前,gunicorn只能运行在Linux环境中,不支持windows平台。
支持同步worker和异步worker
但是在使用中大家都是使用的同步?
# 安装
pip install gunicorn
# 使用示例
gunicorn app:app # 启动服务器
gunicorn -b 0.0.0.0:8000 app:app # 监听端口号
gunicorn -w 4 app:app # 启动四个工作进程处理请求
gunicorn -D app:app # 以守护进程的形式后台运行
gunicorn -c gunicorn.conf.py # 指定配置文件启动服务器
配置文件示例
bind = "0.0.0.0:8000" # 绑定的主机和端口
workers = 4 # 工作进程的数量
threads = 2 # 每个工作进程的线程数
# 日志配置
accesslog = "/path/to/access.log" # 访问日志文件路径
errorlog = "/path/to/error.log" # 错误日志文件路径
loglevel = "info" # 日志级别
# SSL/TLS 配置(可选)
# keyfile = "/path/to/private.key" # 私钥文件路径
# certfile = "/path/to/certificate.crt" # 证书文件路径
# 应用程序模块名和变量名
# 例如,如果你的应用程序在 app.py 文件中的变量名为 app,则配置如下
# module_name:variable_name
# gunicorn -c gunicorn.conf.py "app:app"
#
# 如果你的应用程序是通过 Flask 的工厂函数创建的,例如 create_app(),则配置如下
# module_name:factory_function_name
# gunicorn -c gunicorn.conf.py "app:create_app()"
app = "app:app"
# 可选的其他配置
# timeout = 120 # 请求超时时间(秒)
# max_requests = 1000 # 每个工作进程处理的最大请求数
# preload_app = True # 提前加载应用程序代码
# worker_class = "gevent" # 工作进程使用的并发类别
# 更多配置选项和说明可以参考 Gunicorn 官方文档