Gunicorn + Flask-@ app.errorhandler(500)被忽略了吗?

我花了很多时间进行搜索,但很惊讶我没有找到答案。

我的烧瓶应用程序中有基本的@ app.errorhandler(500)代码。不出所料,当在启用DEBUG的情况下运行时,我得到了一个调试器,当它为false时,我得到了自定义错误页面。我构建的下一阶段是从docker容器中的gunicorn服务该应用程序,当我这样做时,我只会得到一般的“内部服务器错误”。我猜Gunicorn现在正在处理错误,而不是烧瓶?但是我终生无法弄清楚如何要求烧瓶让烧瓶处理错误(如果可能的话),或者使其使用自定义错误页面。

最后一个阶段是nginx后面的docker中的gunicorn,但我想我已经为nginx找到了一个配置指令,使它可以使gunicorn处理错误-我只需要使gunicorn向下传递一个级别,所以我可以使用我的自定义错误页面,并向相关人员发出有关所发生错误的详细信息的通知(如果我在gunicorn或nginx级别上执行了自定义错误页面,我怀疑我会丢失)。帮助将不胜感激。

moonpig_dty 回答:Gunicorn + Flask-@ app.errorhandler(500)被忽略了吗?

我有 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())
本文链接:https://www.f2er.com/3163921.html

大家都在问