首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uWSGI在大型请求期间引发OSError:写入错误

uWSGI在大型请求期间引发OSError:写入错误
EN

Stack Overflow用户
提问于 2016-03-22 22:18:02
回答 3查看 23.7K关注 0票数 30

我的应用程序使用nginx,在服务器端使用uWSGI。当我执行一个大请求(响应时间> 4s)时,会出现以下内容:

代码语言:javascript
复制
SIGPIPE: writing to a closed pipe/socket/fd (probably the client
    disconnected) on request _URL_ (ip XX.XX.XX.XX) !!!

uwsgi_response_writev_headers_and_body_do(): Broken pipe
    [core/writer.c line 287] during GET _URL_ (XX.XX.XX.XX)

OSError: write error

看起来uWSGI试图写入一个流,但是这个流已经被关闭了。当我检查nginx日志(error.log)时:

代码语言:javascript
复制
upstream prematurely closed connection while reading response
    header from upstream ...

当然,我的客户端(REST客户端或浏览器)收到502错误。

我总是在~4s之后得到这个错误。

然而,我不知道如何防止这个问题。我尝试在我的nginx配置文件中设置一些参数:

代码语言:javascript
复制
location my_api_url {
    [...]
    uwsgi_buffer_size 32k;
    uwsgi_buffers 8 32k;
    uwsgi_busy_buffers_size 32k;

    uwsgi_read_timeout 300;
    uwsgi_send_timeout 300;

    uwsgi_connect_timeout 60;
}

但问题仍然存在。我还尝试在uWSGI配置文件(wsgi.ini)中设置以下参数:

代码语言:javascript
复制
buffer-size=8192
ignore-sigpipe=true
ignore-write-errors=true

在尝试优化响应时间之前,我希望这个问题有一个解决方案。我找不到一个在另一篇文章中工作的。我处理大量数据,因此在某些情况下,我的响应时间将在4-10秒之间。

希望你能帮助我:)

在此之前非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-30 04:27:05

可能的情况是,当你上传东西时,你会使用分块编码。有一个uWSGI选项--chunked-input-timeout,默认情况下为4秒(它defaults--socket-timeout的值,即4秒)。

虽然理论上问题可能出在其他地方,但我建议您尝试上述方法。另外,恼人的异常也是我为什么

代码语言:javascript
复制
ignore-sigpipe=true
ignore-write-errors=true
disable-write-exception=true

在我的uWSGI配置中(请注意,我提供了3个选项,而不是2个):

  • ignore-sigpipe使uWSGI不显示SIGPIPE错误;
  • ignore-write-errors使其不显示错误,例如使用
  • disable-write-exception;SIGPIPE阻止写入时生成OSError
票数 27
EN

Stack Overflow用户

发布于 2020-01-13 19:51:32

在我的例子中,Nginx作为uwsgi的后端代理,配置http-timeout将服务器设置为在长时间运行的请求中正常等待。

请记住,nginx代理声明中包含以下选项:

代码语言:javascript
复制
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;

我们对网关超时不执行任何操作。

票数 2
EN

Stack Overflow用户

发布于 2020-11-27 15:18:00

我在我的uwsgi.ini配置中添加了[socked-timeout=xxx],它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36156887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档