没有不值得去解决的问题,也没有不值得去学习的技术!

Resolving Frontend Timeouts When Nginx Reverse Proxies to a Backend That Responds in Time

Frontend response timed out, response time: 1 m 0.06 s

1. The frontend response timed out, with a response time of 1 m 0.06 s. See Figure 1.

Frontend response timed out, response time: 1 m 0.06 s
Figure 1
HTML
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>openresty/1.19.9.1</center>
</body>
</html>

2. The backend interface response did not time out, with a response time of 1 m 5.70 s. See Figure 2.

Backend interface response did not time out, response time: 1 m 5.70 s
Figure 2

3. Adjust the proxy settings by adding 3 timeout-related settings. The default is 60s, and all are adjusted to 300s.

Nginx
	location /api {
		proxy_connect_timeout 300s;
		proxy_send_timeout 300s;
		proxy_read_timeout 300s;
		proxy_pass https://xxx-backend.local/api;
	}

4. After restarting Nginx, request the frontend again in the browser, and it no longer times out. The response time is 1.4 minutes. See Figure 3.

Adjust proxy settings, add 3 timeout-related settings. Default is 60s, all adjusted to 300s
Figure 3

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系