uWSGI 中的默认套接字时间值是多少

What is the default socket-time value in uWSGI

我们 运行 遇到了与这个问题非常相似的问题:

nginx 502 error and 504 error

问题是对于一些较长的请求,比如 20 秒,我们得到 502 而不是 504,然后它 returns 502 到浏览器,但是 Nginx 超时设置为 60 秒以等待 uWSGI 的响应。

我们查看了日志,我们可以看到这个错误:

SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected

套接字似乎已关闭,因此根据上面的 SO link,我偶然发现了此设置 http://uwsgi-docs.readthedocs.io/en/latest/Options.html#socket-timeout 但我无法找到默认值来验证我的声明。

谁能解释一下这个问题?

所以问题出在uwsgi这边,我们把socket-timeout改成60秒还是得到502,结果是harakiri模式设置超时30秒杀掉了工作人员。将其更改为 60 秒并使视图休眠 90 秒并从 nginx 获得 504,这是正确的。

以防其他人偶然发现:

socket-timeout 的默认值似乎是 4 秒:

https://github.com/unbit/uwsgi/blob/master/core/init.c#L128

尽管对于我的案例来说,转换为 8-12 秒可能是由于一些我不理解的技术细节。