Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。
和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。
pip install gunicorn
flask程序需要先安装flask module,pip install flask。
gunicorn_demo.py
通过gunicorn运行flask app
测试结果
gunicorn是一个wsgi http server,可以如上一章节所示直接起停,提供http服务。
不过在production环境,起停和状态的监控最好用supervisior之类的监控工具,然后在gunicorn的前端放置一个http proxy server, 譬如nginx。
下面是supervisor和nginx的配置。
supervisor_gunicorn.conf
-c gunicorn_demo.py, 即是gunicorn本身的配置文件,下面是gunicorn的基本配置,下一章节会详细说明gunicorn的配置项。
nginx.conf part
gunicorn配置项可以通过gunicorn的启动命令行中设定,也可以通过配置文件指定。强烈建议使用一个配置文件。
配置项如下:
bind
监听地址和端口。
backlog
服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error。
建议值64-2048。
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端保持连接时间。
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
检查配置。
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 "%(r)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的配置。
原文:https://www.cnblogs.com/zzzxing/p/12443914.html