一尘不染

调试在Gunicorn中运行的Flask应用

flask

我一直在为我的应用程序使用nginx / gunicorn和Flask开发新的开发平台。

运维方面,一切正常-我遇到的问题是调试Flask层。当我的代码中有错误时,我只是直接向浏览器返回了500错误,而控制台或日志中没有任何显示。

我已经尝试了许多不同的配置/选项。我想我肯定缺少明显的东西。

我的gunicorn.conf:

import os

bind = '127.0.0.1:8002'
workers = 3
backlog = 2048
worker_class = "sync"
debug = True
proc_name = 'gunicorn.proc'
pidfile = '/tmp/gunicorn.pid'
logfile = '/var/log/gunicorn/debug.log'
loglevel = 'debug'

乏味的一些Flask代码示例-testserver.py:

from flask import Flask
from flask import render_template_string
from werkzeug.contrib.fixers import ProxyFix

app = Flask(__name__)

@app.route('/')
def index():
    n = 1/0
    return "DIV/0 worked!"

最后,在gunicorn中运行flask应用程序的命令:

gunicorn -c gunicorn.conf.py testserver:app

谢谢你们


阅读 955

收藏
2020-04-05

共1个答案

一尘不染

Flask配置与gunicorn完全不同。按照Flask关于配置文件的文档,一个好的解决方案是将我的源代码更改为:

app = Flask(__name__)
app.config.from_pyfile('config.py')

并在config.py中:

DEBUG = True
2020-04-05