nginx 代理超时时间设置

在公司维护的一个系统内部有提供接口代理转发功能。今天有使用方找过来说自己有个接口,由于依赖的服务有问题,且暂时性的无法修复,返回数据非常慢,要一两分钟才能返回。现在这个接口在我的系统里做转发,每次请求超过一分钟就会提示接口超时。
首先先了下转发逻辑,转发逻辑底层使用 Nodejs 的 http.request,默认没有超时时间。
再看了下 Nodejs Server 的默认超时时间是 120 秒。
加断点看了下,服务内部已经拿到了转发数据,但是在拿到转发数据之前,浏览器中就显示了超时。这样子看起来不是应用逻辑的问题。
上网搜了下 nginx 的默认超时,发现 nignx 好多不同的超时设置,并且默认都是 1 分钟。
看起来问题就在这里。找公司运维重新配置了下超时时间。在对应 nginx 代理设置中加入

proxy_connect_timeout 120s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;

问题完美解决。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注