【发布时间】:2019-11-04 20:29:44
【问题描述】:
我花了很多时间搜索,但我很惊讶我没有找到答案。
我的烧瓶应用程序中有基本的@app.errorhandler(500) 代码。正如预期的那样,当我在 DEBUG 上运行时,我得到了一个调试器,当它为 false 时,我得到了我的自定义错误页面。我构建的下一个阶段是在 docker 容器中从 gunicorn 提供应用程序,而当我这样做时,我只是得到了通用的“内部服务器错误”。我猜 gunicorn 现在正在处理错误而不是烧瓶?但我一辈子都想不通如何要求它让烧瓶处理错误(如果可能的话),或者让它使用自定义错误页面。
最后阶段将是 nginx 后面的 docker 中的 gunicorn,但我想我已经为 nginx 找到了一个配置指令,让它让 gunicorn 处理错误 - 我只需要让 gunicorn 将它向下传递一个级别,所以我可以使用我的自定义错误页面,并向相关人员发出有关已发生错误的详细信息的通知(我怀疑如果我在 gunicorn 或 nginx 级别执行自定义错误页面,我会丢失)。非常感谢您的帮助。
【问题讨论】:
-
好的,在阅读了更多内容之后,我得出的结论是,在这种情况下,flask 实际上应该进行错误处理,所以我为 404 创建了一个处理程序,我确实得到了我的自定义消息 - 所以现在我很困惑为什么我在触发 500 时没有收到自定义消息,特别是考虑到它 is 在我启动烧瓶开发服务器并关闭调试模式时工作:-/
-
现在更奇怪的是,nginx 后面的同一个容器显示了我自定义的 500 错误。我现在真的很困惑。