客户端在60秒时从我的flask/gunicorn/nginx入口堆栈中收到RemoteDisconnected错误。为什么?超时设置…什么都没有

客户端在60秒时从我的flask/gunicorn/nginx入口堆栈中收到RemoteDisconnected错误。为什么?超时设置…什么都没有,nginx,flask,kubernetes,kops,Nginx,Flask,Kubernetes,Kops,我有一个PythonFlask应用程序在gunicorn背后,在nginx ingress背后,老实说,我已经没有想法了。长时间运行计算后会发生的情况是,在60秒时出现RemoteDisconnect错误,日志中没有任何异常。Gunicorn将有一个巨大的超时,所以不是这样。Nginx非常乐意在60秒时终止,没有任何错误: xxx.xx.xx.xx - [xxx.xx.xx.xx] - - [03/Dec/2019:19:32:08 +0000] "POST /my/url" 499 0 "-"

我有一个PythonFlask应用程序在gunicorn背后,在nginx ingress背后,老实说,我已经没有想法了。长时间运行计算后会发生的情况是,在60秒时出现RemoteDisconnect错误,日志中没有任何异常。Gunicorn将有一个巨大的超时,所以不是这样。Nginx非常乐意在60秒时终止,没有任何错误:

xxx.xx.xx.xx - [xxx.xx.xx.xx] - - [03/Dec/2019:19:32:08 +0000] "POST /my/url" 499 0 "-" "python-requests/2.22.0" 1516 59.087 [my-k8s-service] [] xxx.xx.xx.xx:port 0 59.088 - c676c3df9a40c1692b1789e677a27268
没有错误,警告,什么都没有。由于60年代是如此可疑,我认为这是代理读取超时或上游keepalive超时。。。没有什么;我已经使用注释在configmap和.yaml文件中设置了它们,并在pod中执行
cat/etc/nginx/nginx。conf
显示了必要的服务器具有适当的测试值:

    proxy_connect_timeout                   72s;
    proxy_send_timeout                      78s;
    proxy_read_timeout                      75s;
…设置有趣的值以更好地识别结果。然而。。。仍然会在60秒时断开连接

我们正在做的“正确”答案是重写异步调用,但我真的不知道如何解决这个问题。我设置错了吗?在后台,Flask应用程序继续运行,并在几分钟后完成,但Nginx只是说帖子在一分钟后就消失了。我完全困惑不解。我有一个nginx499错误,这意味着客户端断开连接

我们在AWS上,所以我甚至尝试添加注释

Annotations:       service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: 93
…以备不时之需(从)。无骰子:60岁时仍然死亡

我错过了什么

Seems no issue on AWS load balancer side. its NGINX GUNICORN connection issue . you need to use update proxy timeout value . try annotations in ingress rules to fix . 

nginx.ingress.kubernetes.io/proxy-connect-timeout = 300s
nginx.ingress.kubernetes.io/proxy-send-timeout = 300s
nginx.ingress.kubernetes.io/proxy-read-timeout =  300s

如果您使用的是GUNICORN,请同时设置--timeout=300

确定,关闭。添加注释没有任何作用,但我发现基本nginx入口服务实际上是在静默地创建一个超时为60秒的AWS负载平衡器,而在AWS控制台中更改它改变了我们的错误。但我不知道如何从我的掌舵图中改变这一点;有什么建议吗?