python gunicorn 配置文件在哪
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python gunicorn 配置文件在哪相关的知识,希望对你有一定的参考价值。
工作中使用gunicorn作为服务器的时候,通过配置文件来启动的,gunicorn启动参数可以从--help中获取,但是配置文件中,没有,下面是一些常见的选项的配置和说明import logging
import logging.handlers
from logging.handlers import WatchedFileHandler
import os
bind = \'0.0.0.0:9010\' #绑定的ip已经端口号
backlog = 512 #监听队列
chdir = \'/home/test/server/bin\' #gunicorn要切换到的目的工作目录
timeout = 30 #超时
worker_class = \'gevent\' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = 16 #进程数
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
Headeri request header
Headero response header
"""
accesslog = "/dev/null" #访问日志文件的路径
errorlog = "/dev/null" #错误日志文件的路径
公司的server日志都是按天分割的,多进程中TimeRotatingFileHandler分割日志还是会出问题的,于是便使用了
WatchedFileHandler来记录日志,在server机器上,凌晨加一个自动任务,这样日志就能切割了,但是gunicorn
的logging默认使用的是FileHandler,但是一旦当自动任务备份的时候,它不会自动重新创建,于是便把原有的FileHandler流重定向到了/dev/null,自己再另外添加我想要的Handler即可,如下:
"""
acclog = logging.getLogger(\'gunicorn.access\')
acclog.addHandler(WatchedFileHandler(\'/home/test/server/log/gunicorn_access.log\'))
acclog.propagate = False
errlog = logging.getLogger(\'gunicorn.error\')
errlog.addHandler(WatchedFileHandler(\'/home/test/server/log/gunicorn_error.log\'))
errlog.propagate = False
"""
公司gunicorn 与nginx配合使用,nginx只需要设置一个反向代理
proxy_pass http://127.0.0.1:9010 ;即可
""" 参考技术A 我以前也是 nginx + supervisor(circus) 的方案,后来完全换 nginx + passenger 了,十分好用,配置也简单,尤其是配置多个项目的时候。唯一的不足够是要重新编译 nginx,因为 passenger 以 nginx 插件的形式与 nginx 完全结合的。
以上是关于python gunicorn 配置文件在哪的主要内容,如果未能解决你的问题,请参考以下文章
python+django+gunicorn+nginx的配置