如何修复504网关超时错误?

Cat*_*gan 11 http-status-code-504

我一直在使用jquery尝试从API中提取数据.但是我收到504错误.即使我使用邮递员来测试数据,也会发生这种情况.任何人都可以建议我需要做些什么才能解决这个问题?

All*_*ney 13

我最近在我的一个应用程序上遇到了这个问题,该应用程序正在对其 Firebase 数据库进行雄心勃勃的调用 - 它正在抓取一个非常大的记录,需要超过 60 秒(默认超时)来检索。

对于那些遇到此错误且有权访问其应用程序/站点的托管环境(通过NGINX 进行代理)的用户,可以通过延长 API 请求的超时时间来解决此问题。

在您的/etc/nginx/sites-available/default/etc/nginx/nginx.conf添加以下变量:

proxy_connect_timeout       240;
proxy_send_timeout          240;
proxy_read_timeout          240;
send_timeout                240;
Run Code Online (Sandbox Code Playgroud)

运行sudo nginx -t以检查语法,然后sudo service nginx restart.

这应该有效地将 NGINX 超时您的 API 请求之前的时间增加四倍(默认为 60 秒,我们的新超时为 240 秒)。

希望这可以帮助!


gna*_*729 6

没有什么可以做.

您正在向服务器发送请求.此特定请求失败,因为服务器向代理发送请求,并获得超时错误.您的服务器将此状态报告给您,状态为504.

解决问题的唯一方法是修复代理(使其及时响应),或者将服务器更改为不依赖于该代理.两者都在您的区域之外.

你无法阻止这样的错误.您可以做的是找出发生此类问题时应该具有的用户体验,并实施它.BTW.如果你得到504错误,那么你也应该期待超时错误.假设您在60秒超时的情况下向服务器发出请求,并且您的服务器向代理发出60秒超时请求.由于两个超时都相同,有时您的服务器将收到代理超时并将其发送给您(状态504),但有时您对服务器的请求将在此之前超时,并且您会收到超时错误.

  • 请问您如何“修复代理”这个问题? (2认同)