背景
服务端由第三方部署了一个基于 darknet (一个较为轻型的完全基于C与CUDA的开源深度学习框架)的识别算法服务,通过 Flask 的 Web 服务对业务服务暴露 API 接口。作为测试,一开始是直接通过 python3 app.py 的命令行启动的服务,然后在 Nginx 处通过反向代理过来的。
可是在通过前端页面调用算法接口进行测试时,出现了请求超时的错误:504,GateWay Timeout。
排查原因
因为从前端浏览器中可以看出,是从 Nginx 处返回的超时错误,那么直接去看 Nginx 的错误日志: tail -f error.log 。

什么,连接被拒绝??
可是直接访问算法服务的 API 是可以返回结果的(但是响应真的比较慢,大约需要1分半的时间才会返回结果),为什么通过 Nginx 反向代理之后就访问不了了呢?
经过仔细分析,大胆地猜测是原算法服务的 API 接口返回得太慢,导致 Nginx 直接断开了连接,进而向前端返回了错误。

解决方法
要想办法调整下 Nginx 相关的超时配置,经过面向百度编程后,哼哼~找到了我们需要修改的配置项: proxy_read_timeout ( Nginx 服务器接收被代理服务器数据超时时间,单位秒,规定时间内 Nginx 服务器没收到数据,则超时)。
proxy_read_timeout 120;
Note: 这里将 Nginx 接收被代理服务器数据超时时间改为了120s,实际可根据需要调整(在 Nginx 配置文件的 http 块中)。
Reference
- https://blog.csdn.net/weixin_42942557/article/details/126894236
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!



















