# gunicorn wsgi服务器

# 概述

gunicorn是纯 Python 实现的高性能 Python 应用容器,无外部依赖,简单容易配置;没有性能问题前推荐使用gunicorn。

它的运行模型基于pre-fork worker 模型,既支持eventlet,也支持greenlet。

worker模型即一个manager多个worker,manager仅负责worker的管理,worker真正负责请求的处理

其特点:

  1. 能和大多数的Python Web框架兼容;

  2. 简单易上手;

  3. 轻量级的资源消耗;

  4. 目前,gunicorn只能运行在Linux环境中,不支持windows平台。

  5. 支持同步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 官方文档