背景
服务端由第三方部署了一个基于 darknet
(一个较为轻型的完全基于C与CUDA的开源深度学习框架)的识别算法服务,通过 Flask
的 Web
服务对业务服务暴露 API
接口。作为测试,一开始是直接通过 python3 app.py
的命令行启动的服务,然后在 Nginx
处通过反向代理过来的。
可是在通过前端页面调用算法接口进行测试时,出现了请求超时的错误:504,GateWay Timeout。
排查原因
因为从前端浏览器中可以看出,是从 Nginx
处返回的超时错误,那么直接去看 Nginx
的错误日志: tail -f error.log
。
什么,连接被拒绝??
可是直接访问算法服务的 API
是可以返回结果的(但是响应真的比较慢,大约需要1分半的时间才会返回结果),为什么通过 Nginx
反向代理之后就访问不了了呢?
经过仔细分析,大胆地猜测是原算法服务的 API
接口返回得太慢,导致 Nginx
直接断开了连接,进而向前端返回了错误。