当前位置: 首页 > 面试题库 >

调试在Gunicorn中运行的Flask应用

霍建章
2023-03-14
问题内容

我一直在为我的应用程序使用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

谢谢你们


问题答案:

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

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

并在config.py中:

DEBUG = True


 类似资料:
  • 问题内容: 我是新来的,仅使用nginx提供静态文件。我现在已经安装了flask and gunicorn。如果我运行,然后从服务器中获取它,它将运行良好。但是,如果尝试从浏览器访问它,它将返回404错误(我正在托管位于root用户的wordpress网站的服务器上运行此错误)。 Flask应用程序: 以及我的nginx配置的相关部分: 我希望这是所有相关信息。如果没有,请告诉。谢谢! 问题答案:

  • 我有一个运行在Gunicorn中的Flask SQLAlchmey应用程序连接到PostgreSQL数据库,我很难确定值应该是多少,以及我应该期望多少个数据库连接。 这是我对事物运作方式的理解: Python 3.7中的进程不共享内存 到目前为止这是正确的吗?如果这是正确的,那么对于在Gunicorn中运行的同步烧瓶应用程序: 最大数据库连接数=(工作线程数)*(每个工作线程数)? 在一个work

  • 我想用Docker中的gunicorn运行Flask web服务应用程序。启动后,应用程序加载一个大型机器学习模型。 然而,当我在Docker中运行gunicorn时,我收到了以下超时,它只是不断地繁殖工人。 在Docker中将其作为烧瓶应用程序运行或从命令行运行带有(或不带有)Gunicorn的烧瓶应用程序都可以正常工作。如果我删除机器学习模型,它也适用于Gunicorn。 例如: 这是我与Fl

  • 我有一个现有的Flask应用程序,我想有一个到另一个应用程序的路径。更具体地说,第二个应用程序是一个绘声绘色的短跑应用程序。如何在现有Flask应用程序中运行Dash应用程序? 我还尝试添加一个路由到Dash实例,因为它是一个Flask应用程序,但我得到了错误:

  • 问题内容: 我有用Flask编写的Web应用程序。正如每个人的建议,我不能在生产中使用Flask。所以我想到了带有Flask的Gunicorn。 在Flask应用程序中,我正在加载一些机器学习模型。这些总大小为8GB。我的Web应用程序的并发性可以达到1000个请求。并且机器的RAM是15GB。 那么,运行此应用程序的最佳方法是什么? 问题答案: 你可以使用Gunicorn的多个工作人员或异步工作

  • 问题内容: 在mod_wsgi下运行时,如何激活Flask调试器? 我有,,但调试器仍未出现在异常中。 问题答案: 用: 在mod_wsgi下,你没有执行app.run()。 确保在全局范围而不是在检查__name__是否为__main__的条件部分中设置“ app.debug”。