Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python nginx给出了502,表示烧瓶中的未处理异常500错误_Python_Nginx_Flask_Uwsgi - Fatal编程技术网

Python nginx给出了502,表示烧瓶中的未处理异常500错误

Python nginx给出了502,表示烧瓶中的未处理异常500错误,python,nginx,flask,uwsgi,Python,Nginx,Flask,Uwsgi,我正在运行一个Flask应用程序,并使用uwsgi套接字nginx配置 这可能是一个愚蠢的问题,但我面临的问题是,每当Flask代码中出现异常(例如1/0中的未处理异常)时,我的nginx都会给出502而不是500。我想知道,在默认情况下,引发异常是否没有从uwsgi unix套接字传播到nginx as 500,或者我是否需要显式指定它?我在某个地方读到,对于异常,Flask不会自动发出500条错误消息。任何意见都会有帮助。谢谢。看看502规格: 超文本传输协议502网关服务器错误响应错误 代

我正在运行一个Flask应用程序,并使用uwsgi套接字nginx配置

这可能是一个愚蠢的问题,但我面临的问题是,每当Flask代码中出现异常(例如1/0中的未处理异常)时,我的nginx都会给出502而不是500。我想知道,在默认情况下,引发异常是否没有从uwsgi unix套接字传播到nginx as 500,或者我是否需要显式指定它?我在某个地方读到,对于异常,Flask不会自动发出500条错误消息。任何意见都会有帮助。谢谢。

看看502规格:

超文本传输协议502网关服务器错误响应错误 代码表示服务器在充当网关或代理时, 从上游服务器接收到无效响应

如果您的应用程序在遇到异常时响应了任何内容,则很可能是垃圾,nginx(正确地)会引发502,意思是“我不会(与不能)与后端对话”

如果需要500s,则必须捕获任何可能的底层异常,将其封装在有效响应中,然后由nginx处理。

查看502规范:

超文本传输协议502网关服务器错误响应错误 代码表示服务器在充当网关或代理时, 从上游服务器接收到无效响应

如果您的应用程序在遇到异常时响应了任何内容,则很可能是垃圾,nginx(正确地)会引发502,意思是“我不会(与不能)与后端对话”


如果您想要500s,您必须捕获任何可能的底层异常,将其封装在有效的响应中,然后由nginx处理。

最终我能够解决这个问题。感谢@Jeff Storey和@joppich


我的代理服务器无法从后端服务器读取导致此问题的响应。我添加了一个拦截器来捕获所有异常,并使用上的NGINX
proxy\u intercept\u errors通过uwsgi将其传播到NGINX。非常感谢杰夫和乔比奇。感谢您的帮助。

我终于解决了这个问题。感谢@Jeff Storey和@joppich


我的代理服务器无法从后端服务器读取导致此问题的响应。我添加了一个拦截器来捕获所有异常,并使用上的NGINX
proxy\u intercept\u errors通过uwsgi将其传播到NGINX。非常感谢杰夫和乔比奇。感谢您的帮助。

可能重复-此问题与php无关。这是关于uwsgi和flask的,我知道你在使用flask,但这个问题并不是php特有的。这是关于nginx配置和转发错误的。或者,正如下面的答案所示,确保您正确地从应用程序返回到nginx的有效响应。我将重新检查我的ini文件,看看是否遗漏了什么。我会在以后的某个时候公布我的调查结果。我将做那个改变,并将在某个时候发布我的发现。谢谢可能重复-这个问题与php无关。这是关于uwsgi和flask的,我知道你在使用flask,但这个问题并不是php特有的。这是关于nginx配置和转发错误的。或者,正如下面的答案所示,确保您正确地从应用程序返回到nginx的有效响应。我将重新检查我的ini文件,看看是否遗漏了什么。我会在以后的某个时候公布我的调查结果。我将做那个改变,并将在某个时候发布我的发现。谢谢谢谢你。没错,这就是我所面临的。我想我必须包装任何错误响应,以便NGINX能够读取它。我必须尝试@Jeff Storey解决方案,在那里我可以将错误传播到NGINX。这正是我所面临的。我想我必须包装任何错误响应,以便NGINX能够读取它。我必须尝试@Jeff Storey解决方案,在那里我可以将错误传播到NGINX。