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 秒可能是由于一些我不理解的技术细节。
我们 运行 遇到了与这个问题非常相似的问题:
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 秒可能是由于一些我不理解的技术细节。