当前位置: 首页 > 知识库问答 >
问题:

如何防止Werkzeug在NGINX关闭管道后崩溃?

龙智
2023-03-14

我是否缺少一些配置选项来防止它崩溃?通常情况下,所有异常都会被捕获并返回一个500错误,而服务器仍然处于活动状态。

共有1个答案

马寒
2023-03-14

据我从调试跟踪中猜测,如果没有阅读源代码,您可能过早地关闭了套接字。

您的服务器进程收到SIGPIPE写入套接字的消息。当您写入另一个(客户端)端完全关闭的套接字时,通常会发生这种情况。当客户机程序没有等到从服务器接收到所有数据,而只是关闭一个套接字(使用close函数)时,可能会发生这种情况。

在C程序中,您通常会尝试设置为忽略SIGPIPE信号或为其设置一个虚拟信号处理程序。在这种情况下,当写入封闭的套接字时,将返回一个简单的错误。在您的例子中,python似乎抛出了一个异常,可以作为客户端过早断开连接来处理。

 类似资料:
  • 问题内容: 有关此目标背后的动机(以及我为实现该目标所做的努力)的更多详细信息,请查看我的上一个问题。我决定完全以一个新问题提出这个问题,因为我认为它已经发展到足以值得这样做了。作为总结,我打算将JDOM与NIO结合使用,以便: 在xml文件上获得排他文件锁定。 将文件读入对象。 进行任意更改(锁定仍处于活动状态!)。 将更改写回到xml文件。 释放文件锁。 但是,我遇到的问题是,将xml文件读入

  • 不知道为什么会投反对票,我问了一个简单的问题,有人回答了。我不能那样做,那就试试别的吧。将使用true false来测试进入模拟循环的位置。

  • 问题内容: 目前,我正在使用内置于python的应用程序。当我在个人计算机上运行它时,它不会出现问题。 但是,当我将其移至生产服务器时。它不断向我显示以下错误: 我进行了一些研究,得出的原因是,当服务器仍在忙于发送数据时,最终用户浏览器会停止连接。 我想知道为什么会发生这种情况,以及根本原因是什么导致它无法在生产服务器上正常运行,而我的计算机却可以正常运行。任何建议表示赞赏 问题答案: 您的服务器

  • 问题内容: 我正在通过SSH(Putty)在Linux机器上工作。我需要让一个进程在夜间运行,所以我想可以通过在后台启动该进程(在命令末尾使用&号)并将stdout重定向到文件来实现。 令我惊讶的是,这行不通。一旦关闭“腻子”窗口,该过程就会停止。 如何防止这种情况发生? 问题答案: 检出“ nohup ”程序。

  • 我正在Java做一个应用程序,我需要它在后台工作,当用户关闭应用程序时,他仍然保持隐藏状态

  • 我有一个主(屏幕)gui窗口,需要打开几个“多输入”窗口(jdialog或当不可能使用jframe时),例如添加首选项(4个文本字段,带有2个文件选择器和2个单选按钮)。在这些JDialogs(或JFrames)中按OK/Cancel时,我的整个应用程序将关闭。我不想那样。我该怎么防止呢? 第一次尝试:我尝试了intelliJ选项“新- 第二次尝试:我“手工”编写了一个类,创建了一个JDialog