Python的gunicorn服务器配置方式

 更新时间:2025年07月29日 17:07:22   作者:Littlewith  
Gunicorn是Python WSGI服务器,用于部署Flask/Django等框架,解决原生并发性能不足,常与Nginx搭配,支持配置参数及守护进程管理,推荐在Linux/WSL/Docker环境中使用,生产环境建议Nginx+Gunicorn+Supervisor组合

Gunicorn 指南

什么是 Gunicorn?

Gunicorn(Green Unicorn)是一个兼容 WSGI 协议的 Python Web 服务器,广泛用于部署如 Flask、Django 等 Python Web 框架。

其核心功能包括:

  • 启动 Web 服务
  • 管理多个工作进程
  • 解决 Python 原生并发性能不足问题
  • 常与 Nginx 组合部署,形成 Nginx + Gunicorn 的架构

安装 Gunicorn

pip install gunicorn
gunicorn -h  # 查看帮助

使用 Gunicorn 启动 Flask 应用

1. 创建一个最基本的 Flask 应用

# app.py
from flask import Flask      

def create_app():       
    app = Flask(__name__)       
    return app   

app = create_app()      

@app.route('/')   
def index():       
    return 'hello world!'   

if __name__ == '__main__':       
    app.run()    

2. 使用 Gunicorn 启动服务

在项目根目录下运行:

gunicorn -w 4 -b 0.0.0.0:8000 app:app

说明

  • 第一个 app 是文件名 app.py
  • 第二个 app 是 Flask 实例名 app

Gunicorn 常用参数详解

参数说明
-c CONFIG使用配置文件(适合生产环境)
-b ADDRESS绑定的地址与端口,例如 0.0.0.0:8000
-w, --workers工作进程数,正整数,默认 1
-k, --worker-class工作模式,如 sync(默认)、gevent、eventlet
--threads每个 worker 的线程数,默认 1
--worker-connections最大客户端并发数,默认 1000
--backlog待处理连接队列最大长度,默认 2048
-p, --pid设置 PID 文件路径
--access-logfile访问日志路径
--access-logformat日志格式
--error-logfile / --log-file错误日志路径
--log-level日志等级,默认 info,可设为 debug/warning/error
--limit-request-line请求行最大长度(默认 4094)
--limit-request-fields请求头最大字段数(默认 100)
--limit-request-field-size请求头字段最大字节数(默认 8190)
-t, --timeout请求超时时间,单位秒,默认 30 秒
--daemon是否以守护进程运行,默认 False
--chdir切换工作目录
--graceful-timeout优雅退出时间,默认 30 秒
--keep-aliveKeep-alive 连接等待时间,默认 2 秒
--reload开发模式:代码变更时自动重载
--spew打印服务器执行的所有语句
--check-config显示当前配置
-e, --env设置环境变量

使用配置文件启动 Gunicorn

  • 示例配置文件:gunicorn.conf.py
# 并行工作进程数 
workers = 4 

# 每个工作进程线程数 
threads = 2 

# 监听内网端口 
bind = '127.0.0.1:5000' 

# 是否以守护进程运行 
daemon = 'false' 

# 工作模式 
worker_class = 'gevent' 

# 最大并发连接数 
worker_connections = 2000 

# PID 文件路径 
pidfile = '/var/run/gunicorn.pid' 

# 日志路径 
accesslog = '/var/log/gunicorn_access.log' 
errorlog = '/var/log/gunicorn_error.log' 

# 日志级别 
loglevel = 'warning' 
  • 启动命令
gunicorn -c gunicorn.conf.py app:app

注意事项

Gunicorn 不支持 Windows 平台

  • 在 Windows 下运行可能出现以下错误:
ImportError: No module named _curses / fcntl

解决方法:

  • 尝试自行下载缺失模块(如 fcntl.py
  • 推荐在 Linux、WSL 或 Docker 环境中部署

推荐部署组合

生产环境中推荐以下组合:

Nginx + Gunicorn + Flask/Django

  • Nginx:作为前端反向代理和静态资源服务
  • Gunicorn:处理 Python 后端应用
  • Supervisor:管理 Gunicorn 的守护进程运行

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决pyqt5中QToolButton无法使用的问题

    解决pyqt5中QToolButton无法使用的问题

    今天小编就为大家分享一篇解决pyqt5中QToolButton无法使用的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python BeautifulSoup基本用法详解(通过标签及class定位元素)

    Python BeautifulSoup基本用法详解(通过标签及class定位元素)

    这篇文章主要介绍了Python BeautifulSoup基本用法(通过标签及class定位元素),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Matplotlib中rcParams使用方法

    Matplotlib中rcParams使用方法

    这篇文章主要介绍了Matplotlib中rcParams使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 使用Python编写电脑定时关机小程序

    使用Python编写电脑定时关机小程序

    这篇文章主要为大家详细介绍了如何使用Python编写电脑定时关机小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 对pandas的层次索引与取值的新方法详解

    对pandas的层次索引与取值的新方法详解

    今天小编就为大家分享一篇对pandas的层次索引与取值的新方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python TinyDB轻量级文档导向数据库轻松存储访问

    python TinyDB轻量级文档导向数据库轻松存储访问

    这篇文章主要为大家介绍了python TinyDB轻量级文档导向数据库轻松存储访问数据使用探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    setproctitle 是一个 Python 模块,用于设置进程标题(process title),通过设置进程标题,可以让进程在系统级的进程管理工具中展示自定义的名称,方便用户查看和管理进程,本文介绍python3 设置多进程名称并在ps命令中可见,感兴趣的朋友一起看看吧
    2024-03-03
  • 在python的类中动态添加属性与生成对象

    在python的类中动态添加属性与生成对象

    这篇文章给大家介绍了如何在python的类中动态添加属性和生成对象,文中通过几个方面来进行介绍,对这感兴趣的朋友们可以学习学习。
    2016-09-09
  • django迁移文件migrations的实现

    django迁移文件migrations的实现

    这篇文章主要介绍了django迁移文件migrations的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现简单状态框架的方法

    Python实现简单状态框架的方法

    这篇文章主要介绍了Python实现简单状态框架的方法,涉及Python状态框架的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论