博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gunicorn
阅读量:3960 次
发布时间:2019-05-24

本文共 3536 字,大约阅读时间需要 11 分钟。

文章目录

安装

pip install gunicorn

常用命令

gunicorn -w 4 -b 127.0.0.1:8080 -D --access-logfile=/var/log/gunicorn.log 项目名.wsgi:application

1)-c CONFIG,–config=CONFIG
指定一个配置文件(py文件)
2)-b BIND,–bind=BIND
与指定socket进行板顶
3)-D,–daemon
后台进程方式运行gunicorn进程
4)-w WORKERS,–workers=WORKERS
工作进程的数量
5)-k WORKERCLASS,–worker-class=WORKERCLASS
工作进程类型,包括sync(默认),eventlet,gevent,tornado,gthread,gaiohttp
6)–backlog INT
最大挂起的连接数
7)–log-level LEVEL
日志输出等级
8)–access-logfile FILE
访问日志输出文件
9)–error-logfile FILE
错误日志输出文件

使用配置文件启动项目
# gunicorn.conf.py import logging import logging.handlers from logging.handlers import WatchedFileHandler import os import multiprocessing  bind = '127.0.0.1:8000'  # 绑定ip和端口号 backlog = 512  # 监听队列 chdir = '/home/python/PycharmProjects/News-Information'  # gunicorn要切换到的目的工作目录 timeout = 30  # 超时 worker_class = 'gevent'  # 使用gevent模式,还可以使用sync 模式,默认的是sync模式  workers = multiprocessing.cpu_count() * 2 + 1  # 进程数 threads = 2  # 指定每个进程开启的线程数 loglevel = 'info'  # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置 access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'  # 设置gunicorn访问日志格式,错误日志无法设置  """ 其每个选项的含义如下: h          remote address l          '-' u          currently '-', may be user name in future releases t          date of the request r          status line (e.g. ``GET / HTTP/1.1``) s          status b          response length or '-' f          referer a          user agent T          request time in seconds D          request time in microseconds L          request time in decimal seconds p          process ID """ accesslog = "/home/python/PycharmProjects/News-Information/log/gunicorn_access.log"  # 访问日志文件 errorlog = "/home/python/PycharmProjects/News-Information/log/gunicorn_error.log"
详解

server socket

bind
监听地址和端口。

backlog

服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error。
建议值64-2048。

worker 进程

workers
worker进程的数量。建议值2-4 x $(NUM_CORES), 缺省为1。

worker_class

worker进程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync。

threads

工作进程中线程的数量。建议值2-4 x $(NUM_CORES), 缺省值1。
此配置只适用于gthread 进程工作方式, 因为gevent这种使用的是协程工作方式。

worker_connections

客户端最大同时连接数。只适用于eventlet, gevent工作方式。

max_requests

worker重启之前处理的最大requests数, 缺省值为0表示自动重启disabled。主要是防止内存泄露。

max_requests_jitter

抖动参数,防止worker全部同时重启。

timeout

通常设为30。

graceful_timeout

接收到restart信号后,worker可以在graceful_timeout时间内,继续处理完当前requests。

keepalive

server端保持连接时间。

security

limit_request_line
http request line最大字节数。值范围0-8190, 0表示无限制。

limit_request_field

http request中 header字段数的最大值。缺省为100,最大32768。

limit_request_field_size

http request header字段最大字节数。0表示无限制。

调试

reload
当代码有修改时,自动重启workers。适用于开发环境。

reload_extra_files

扩展reload配置,增加templates,configurations等文件修改监控。

spew

跟踪程序执行的每一行。

check_config

检查配置。

server 机制

sendfile
系统底层拷贝数据方式,提供performance。

chdir

在app加载之前,进入到此目录。

daemon

应用是否以daemon方式运行。

raw_env

key=value, 传递环境参数。

pidfile

pid存储文件路径。

worker_tmp_dir

临时工作目录。

user

指定worker进程的运行用户名。

group

指定worker进程运行用户所在组。

umask

gunicorn创建文件的缺省权限。

pythonpath

附加到python path的目录列表。

日志

accesslog
访问日志文件路径。

access_log_format

日志格式。 例如 %(h)s %(l)s %(u)s %(t)s “%®s” %(s)s %(b)s “%(f)s” “%(a)s” 。

errorlog

错误日志路径。

loglever

日志级别。debug, info, warning, error, critical.

capture_output

重定向stdout/stderr到error log file。

logger_class

日志实现类。缺省gunicorn.glogging.Logger 。

logconfig

日志配置文件。同python标准日志模块logging的配置。

进程名

proc_name
设置进程名(setproctitle),在ps,top等命令中会看到. 缺省值为default_proc_name配置。
server钩子
on_starting
on_reload
when_ready
pre_fork
post_fork
post_worker_init
worker_init
worker_abort
pre_exec
pre_request
post_request
child_exit
worker-exit
nworkers_changed
on_exit

转载地址:http://pmezi.baihongyu.com/

你可能感兴趣的文章
inet_ntoa()
查看>>
POSIX消息队列mq_open问题
查看>>
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>
如何写好应用型学术论文
查看>>
如何查看进程的各种限制
查看>>
64位int类型用printf输出问题
查看>>
网络后台开发面试题目
查看>>
Linux 共享内存限制的查看与设置
查看>>
进程的状态转换
查看>>
如何查看进程的信息(线程数)
查看>>
Linux中的chage命令
查看>>
linux-详细解析密码文件passwd与shadow
查看>>
su- 与su的区别
查看>>
linux下发邮件mail
查看>>
echo如何手动输出换行
查看>>
身份证的正确使用方法——非常重要的知识
查看>>