Nginx反向代理的一个算法API的接口调用超时:504,GateWay Timeout,怎么破?

背景

服务端由第三方部署了一个基于 darknet (一个较为轻型的完全基于C与CUDA的开源深度学习框架)的识别算法服务,通过 FlaskWeb 服务对业务服务暴露 API 接口。作为测试,一开始是直接通过 python3 app.py 的命令行启动的服务,然后在 Nginx 处通过反向代理过来的。

可是在通过前端页面调用算法接口进行测试时,出现了请求超时的错误:504,GateWay Timeout

排查原因

因为从前端浏览器中可以看出,是从 Nginx 处返回的超时错误,那么直接去看 Nginx 的错误日志: tail -f error.log

Timeout.jpg

什么,连接被拒绝??

可是直接访问算法服务的 API 是可以返回结果的(但是响应真的比较慢,大约需要1分半的时间才会返回结果),为什么通过 Nginx 反向代理之后就访问不了了呢?

经过仔细分析,大胆地猜测是原算法服务的 API 接口返回得太慢,导致 Nginx 直接断开了连接,进而向前端返回了错误。

猜你喜欢

转载自blog.csdn.net/u013810234/article/details/128427820