Python的gunicorn服务器配置方式

作者:

文章目录
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: python3 gunicorn配置文件的用法解读 python之gunicorn配置详解 python中的gunicorn配置和使用教程 python Gunicorn服务器使用方法详解
  • 目录
    • Gunicorn 指南
      • 什么是 Gunicorn?
      • 安装 Gunicorn
      • 使用 Gunicorn 启动 Flask 应用
      • Gunicorn 常用参数详解
      • 使用配置文件启动 Gunicorn
      • 注意事项
      • 推荐部署组合
    • 总结

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

      其核心功能包括:

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

      pip install gunicorn
      gunicorn -h  # 查看帮助
      

      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

      参数 说明
      -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-alive Keep-alive 连接等待时间,默认 2 秒
      –reload 开发模式:代码变更时自动重载
      –spew 打印服务器执行的所有语句
      –check-config 显示当前配置
      -e, –env 设置环境变量

      • 示例配置文件: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 的守护进程运行

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

      您可能感兴趣的文章:

      • python3 gunicorn配置文件的用法解读
      • python之gunicorn配置详解
      • python中的gunicorn配置和使用教程
      • python Gunicorn服务器使用方法详解

      站内搜索