gunicorn_config.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding:utf-8 -*-
  2. # 参考:
  3. # https://blog.csdn.net/y472360651/article/details/78538188
  4. # https://docs.gunicorn.org/en/stable/settings.html#server-mechanics
  5. import multiprocessing
  6. import os
  7. from config import CfgBaseInit
  8. project_path = CfgBaseInit.project_path
  9. project_name = CfgBaseInit.project_name
  10. # debug 开启
  11. debug = True
  12. # 后台守护模式
  13. daemon = True
  14. # daemon = False # 如果考虑使用 supervisor 的话,将此关闭较为稳妥
  15. # 更改代码后台重新加载
  16. # reload = True
  17. reload = False
  18. # 预加载资源
  19. preload_app = True
  20. bind = CfgBaseInit.bind # 绑定ip和端口号
  21. # backlog = 512 # 监听队列
  22. chdir = '{}'.format(project_path) # gunicorn要切换到的目的工作目录
  23. timeout = 180 # 超时
  24. # worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
  25. worker_class = 'uvicorn.workers.UvicornWorker' # sync 模式, fastapi 框架使用的是 asgi ,wsgi 可使用 gevent 模式
  26. # 设置最大并发量
  27. worker_connections = 10000
  28. # 长链接保持时间 1-5s, 默认 2
  29. keepalive = 180
  30. workers = multiprocessing.cpu_count() * 2 + 1 # 进程数
  31. threads = min(32, (os.cpu_count() or 1) + 4) # if "uvicorn" not in worker_class else 1 # 指定每个进程开启的线程数
  32. loglevel = 'debug' # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
  33. access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' # 设置gunicorn访问日志格式,错误日志无法设置
  34. pidfile = "{}/logs/pid.pid".format(project_path)
  35. accesslog = "{}/logs/gunicorn_access.log".format(project_path) # 访问日志文件
  36. errorlog = "{}/logs/gunicorn_error.log".format(project_path) # 错误日志文件