参数名 | 参数内容 | 默认 |
---|---|---|
-c , --config | config_file | None |
配置文件路径,路径形式的字符
使用config参数及配置文件启动,例子:
gunicorn -c gunicorn.conf manager:app
参数名 | 参数内容 | 默认 |
---|---|---|
bind | ip:port | [‘127.0.0.1:8000’] |
监听地址和端口
例子:
bind = "%s:%s" % ("0.0.0.0", 9102)
参数名 | 参数内容 | 默认 |
---|---|---|
workers | 进程数量 | 1 |
用于处理工作进程的数量
worker推荐的数量为当前的CPU个数*2 + 1。
计算当前的CPU个数方法并设置:
import multiprocessing
workers = multiprocessing.cpu_count() * 2
参数名 | 参数内容 | 默认 |
---|---|---|
worker_class | 工作模式 | sync |
多个工作模式:
同步Worker:sync 默认模式,也就是一次只处理一个请求
异步Worker:通过Eventlet、Gevent实现的异步模式
异步IO Worker:目前支持gthread和gaiohttp两种类型
例子:
worker_class = 'gevent'
参数名 | 参数内容 | 默认 |
---|---|---|
worker_connections | 客户端最大同时连接数 | 1000 |
使用于gevent和eventlet工作模式
例子:
worker_connections = 5000
参数名 | 参数内容 | 默认 |
---|---|---|
threads | 线程数 | 1 |
工作进程中线程的数,建议值2-4 x CPU核心数
此配置只适用于gthread 进程工作方式, 因为gevent这种使用的是协程工作方式。
参数名 | 参数内容 | 默认 |
---|---|---|
max_requests | 最大请求数 | 0 |
重启之前,worker将处理的最大请求数
0,默认值时,则禁止了worker的自动重启
这个方法主要是防止内存泄露
当超过max_requests时,就会重启worker
阿里云服务器TCP连接数(Count):
参数名 | 参数内容 | 默认 |
---|---|---|
max_requests_jitter | max_requests的最大抖动值 | 0 |
抖动将导致每个工作的重启被随机化,
这是为了避免所有工作被重启。randint(0,max-requests-jitter)
参数名 | 参数内容 | 默认 |
---|---|---|
timeout | 秒数 | 30秒 |
worker超时时间,超时重启
参数名 | 参数内容 | 默认 |
---|---|---|
graceful_timeout | 秒数 | 接收到restart信号后,worker可以在graceful_timeout时间内,继续处理完当前requests |
参数名 | 参数内容 | 默认 |
---|---|---|
keepalive | INT | 连接上等待请求的秒数,默认情况下值为2。一般设定在1~5秒之间。 |
参数名 | 参数内容 | 默认 |
---|---|---|
limit_request_line | 最大数 | 4094 |
http request line最大字节数。值范围0-8190, 0表示无限制。
参数名 | 参数内容 | 默认 |
---|---|---|
limit_request_fields | 最大值 | 100 |
http request中 header字段数的最大值,最大32768
参数名 | 参数内容 | 默认 |
---|---|---|
limit_request_field_size | 最大值 | 8190 |
http request header字段最大字节数,0时无限制
参数名 | 参数内容 | 默认 |
---|---|---|
reload | True/False | False |
当代码有修改时,自动重启workers。适用于开发环境。
参数名 | 参数内容 | 默认 |
---|---|---|
reload_extra_files | str | [ ] |
扩展reload配置,增加templates,configurations等文件修改监控。
参数名 | 参数内容 | 默认 |
---|---|---|
spew | True/False | False |
参数名 | 参数内容 | 默认 |
---|---|---|
check_config | True/False | False |
检查配置
参数名 | 参数内容 | 默认 |
---|---|---|
chdir | 文件路径 | /home/docs/checkouts/readthedocs.org/user_builds/gunicorn-docs/checkouts/latest/docs/source |
在app加载之前,进入到此目录
配合使用效果更佳:
path_of_current_file = os.path.abspath(__file__)
path_of_current_dir = os.path.split(path_of_current_file)[0]
chdir = path_of_current_dir
参数名 | 参数内容 | 默认 |
---|---|---|
daemon | True/False | False |
应用是否以daemon方式运行。
参数名 | 参数内容 | 默认 |
---|---|---|
raw_env | key=value, 传递环境参数。 | [ ] |
参数名 | 参数内容 | 默认 |
---|---|---|
pidfile | 文件路径 | None |
存储pid的文件路径
参数名 | 参数内容 | 默认 |
---|---|---|
worker_tmp_dir | 路径 | None |
临时工作目录
参数名 | 参数内容 | 默认 |
---|---|---|
user | 用户名或者用户id | 1005 |
指定worker进程的运行用户名
参数名 | 参数内容 | 默认 |
---|---|---|
accesslog | 文件路径 | None |
接收日志文件路径
参数名 | 参数内容 | 默认 |
---|---|---|
access_log_format | 日志格式 | %(h)s %(l)s %(u)s %(t)s “%®s” %(s)s %(b)s “%(f)s” “%(a)s” |
文档:
https://docs.gunicorn.org/en/latest/settings.html#access-log-format
参数名 | 参数内容 | 默认 |
---|---|---|
errorlog | 文件路径 | - |
错误日志路径
参数名 | 参数内容 | 默认 |
---|---|---|
loglever | str | info |
日志等级:debug, info, warning, error, critical.
capture_output
重定向stdout/stderr到error log file。
logger_class
日志实现类。缺省gunicorn.glogging.Logger 。
logconfig
日志配置文件。同python标准日志模块logging的配置。
https://docs.gunicorn.org/en/latest/settings.html
https://www.jianshu.com/p/69e75fc3e08e
https://blog.csdn.net/y472360651/article/details/78538188