如何解决PlayFramework 在长时间运行的请求上导致 502 Bad gateway
我有一个长时间运行的请求,我想在 Nginx 反向代理后面的 Play 框架中处理该请求。
大约 3 分钟后,我收到 502 Bad Gateway 作为响应。不过,Play 会继续处理请求。
我相信 Play 框架会关闭套接字。我尝试设置以下配置:
在 Nginx 中
proxy_read_timeout 15m;
proxy_connect_timeout 15m;
In play 框架的应用程序配置:
play.server.http.idleTimeout = infinite
play.server.https.idleTimeout = infinite
play.server.akka.http.server.idle-timeout = infinite
play.server.akka.http.client.idle-timeout = infinite
play.server.akka.http.server.request-timeout = infinite
play.server.akka.http.client.connecting-timeout = infinite
play.server.akka.http.host-connection-pool.max-connection-lifetime = infinite
play.server.akka.http.host-connection-pool.idle-timeout = infinite
play.server.akka.http.host-connection-pool.client.idle-timeout = infinite
(我刚刚添加了所有可能相关的设置并将它们设置为无限。很高兴将所有不相关的设置都扔掉。)
但这似乎并没有改变任何事情。大约 3 分钟后,我得到了一个 502 BAd 网关。有没有办法让套接字保持活动状态,或者对这种行为有其他解释吗?
播放版本:2.7.2
附加信息:
我将所有值都设置为极低的值。所有的播放配置似乎没有任何影响。 Nginx 配置有效。所以,我认为这与那些播放设置无关。
我试图确认它确实发生在 Play 中而不是 Nginx 中。当后端服务器可以启动时,我花费了时间:76 秒。当它在启动(编译、liquibase)后必须经过准备动作时:97 秒。我相信这证实了问题是在 Play 中发现的,而不是在 Nginx 或前端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。