Flask Gunicorn&x2B;烧瓶-@app.errorhandler(500)被忽略?

Flask Gunicorn&x2B;烧瓶-@app.errorhandler(500)被忽略?,flask,gunicorn,Flask,Gunicorn,我花了相当多的时间搜索,我很惊讶我没有找到答案 我的flask应用程序中有@app.errorhandler(500)的基本代码。正如预期的那样,当在上运行DEBUG时,我会得到一个调试器,当它为false时,我会得到我的自定义错误页。不过,我构建的下一个阶段是在docker容器中为gunicorn的应用程序提供服务,当我这样做时,我只会得到一般的“内部服务器错误”。我猜gunicorn现在正在处理错误,而不是flask?但我一辈子都不知道如何让flask处理错误(如果可能的话),或者让它使用自

我花了相当多的时间搜索,我很惊讶我没有找到答案

我的flask应用程序中有@app.errorhandler(500)的基本代码。正如预期的那样,当在上运行DEBUG时,我会得到一个调试器,当它为false时,我会得到我的自定义错误页。不过,我构建的下一个阶段是在docker容器中为gunicorn的应用程序提供服务,当我这样做时,我只会得到一般的“内部服务器错误”。我猜gunicorn现在正在处理错误,而不是flask?但我一辈子都不知道如何让flask处理错误(如果可能的话),或者让它使用自定义错误页面


最后一个阶段将是nginx后面docker中的gunicorn,但我想我已经找到了nginx的配置指令,让gunicorn处理错误-我只需要让gunicorn将其进一步传递一级,这样我就可以使用我的自定义错误页面,并向相关人员发出通知,告知发生错误的详细信息(如果我在gunicorn或nginx级别创建自定义错误页面,我怀疑我会丢失该页面)。非常感谢您的帮助。

我有Flask+gunicorn+nginx系统,内部服务器错误默认使用nginx处理,我添加了以下配置,以允许Flask处理500个错误:

import logging
from werkzeug.exceptions import InternalServerError
import traceback


@app.errorhandler(InternalServerError)
def handle_500(e):
    logging.error(traceback.format_exc())

好的,在阅读了更多的内容后,我得出结论,在这种情况下,flask实际上应该做错误处理,所以我为404创建了一个处理程序,我确实收到了我的自定义消息-所以现在我很困惑,为什么我在触发500时没有收到自定义消息,特别是考虑到当我启动flas时它正在工作k开发服务器并关闭调试模式:-/现在更奇怪的是,nginx后面的同一个容器显示了我的自定义500错误。我现在真的很困惑。